-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
722 lines (667 loc) · 30.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta name="keywords" content="note, math, music, 笔记, 数学, 音乐">
<meta name="description" content="zmx0142857 的个人笔记,包括数学、计算机、物理、语言、音乐等学科">
<meta name="author" content="zmx0142857">
<title>zmx0142857 的数学笔记</title>
<link id="favicon" rel="shortcut icon" href="img/pikachu.png"/>
<!-- 字体预加载 -->
<link rel="prefetch" href="font/latinmodern-math.woff2" as="font" type="font/woff2" crossorigin/>
<link rel="prefetch" href="https://unpkg.com/[email protected]/dist/fonts/KaTeX_Main-Regular.woff2" as="font" type="font/woff2" crossorigin/>
<link rel="prefetch" href="https://unpkg.com/[email protected]/dist/fonts/KaTeX_Math-Italic.woff2" as="font" type="font/woff2" crossorigin/>
<!-- 不常用
<link rel="preload" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/fonts/KaTeX_Math-BoldItalic.woff2" as="font" type="font/woff2" crossorigin/>
<link rel="preload" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/fonts/KaTeX_Size1-Regular.woff2" as="font" type="font/woff2" crossorigin/>
<link rel="preload" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/fonts/KaTeX_Size2-Regular.woff2" as="font" type="font/woff2" crossorigin/>
<link rel="preload" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/fonts/KaTeX_Size3-Regular.woff2" as="font" type="font/woff2" crossorigin/>
<link rel="preload" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/fonts/KaTeX_Size4-Regular.woff2" as="font" type="font/woff2" crossorigin/>
-->
<!-- 首页用到的样式直接内联 -->
<style type="text/css">
* {
margin: 0;
padding: 0;
}
body {
text-rendering: optimizeLegibility;
font-size: 16px;
font-family: "-apple-system", "Helvetica Neue", "Roboto", "Segoe UI", sans-serif;
margin: 0;
}
header {
height: 45px;
line-height: 45px;
font-size: 18px;
display: flex;
justify-content: space-between;
position: relative;
width: 100%;
text-align: center;
font-weight: 500;
border-color: #000;
background-color: #444;
color: #fff;
transition: 1s;
}
header a {
height: 45px;
width: 45px;
border: none;
color: inherit;
font-size: inherit;
font-weight: inherit;
background: rgba(0,0,0,0);
cursor: pointer;
text-decoration: none;
}
header a:focus {
border: none;
}
header a:first-child {
left: 0;
}
header a:last-child {
right: 0;
}
header #article-title {
flex: auto;
}
/* 站内搜索 */
header .search {
position: absolute;
right: 45px;
}
#header {
margin-top: 0;
transition: margin-top .3s;
}
#header.hidden {
margin-top: -45px;
}
#search-box {
font-size: 14px;
padding: 8px;
background: transparent !important;
border: none !important;
border-radius: 3px;
width: 16px;
transition: width 0.3s;
color: transparent;
}
#search-box:focus,
#search-box.focus {
width: 160px;
background: #333 !important;
border: 1px solid #555 !important;
color: #fff;
}
#search-box::-webkit-input-placeholder {
color: transparent;
}
#search-button {
color: transparent;
vertical-align: middle;
border: none !important;
background: transparent !important;
pointer-events: none;
position: absolute;
top: 15px;
right: 10px;
}
#search-box:focus + #search-button,
#search-button:focus {
pointer-events: unset;
}
#search-button > img {
width: 18px !important;
height: 18px !important;
}
#nav {
position: absolute;
top: 0;
left: 0;
height: 100vh;
width: 0;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
overflow-y: hidden;
background: #fcfcfc;
/*box-shadow: inset -14px 0px 5px -12px rgb(210,210,210);*/
border-right: 1px #444;
transition: .5s;
z-index: 0;
}
#table-of-contents {
height: 100%;
overflow: auto;
list-style-type: none;
color: #259;
box-shadow: inset -14px 0px 5px -12px rgb(210,210,210);
}
#table-of-contents ul {
list-style-type: none;
}
#table-of-contents li {
text-indent: 1em;
line-height: 2em;
/* following 3 lines are required for text-overflow */
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ellipsis,
#table-of-contents li {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#table-of-contents ul li {
padding-left: 1em;
color: #444;
/* 折叠目录
height: 0;
overflow-y: hidden;
transition: .3s ease;
}
#table-of-contents > li:hover li {
height: 2em;
transition: .3s ease;
*/
}
#table-of-contents ul li:hover,
#table-of-contents ul li.active {
background: linear-gradient(90deg, #eef 80%, transparent);
cursor: pointer;
}
li.isnew::after {
content: '';
background: #d34;
border-radius: 50%;
display: inline-block;
height: 6px;
width: 6px;
position: relative;
top: -5px;
left: 3px;
}
#table-of-contents a {
text-decoration: none;
color: inherit;
}
#article {
position: relative;
display: flex;
flex-direction: column;
margin-left: 0;
width: 100%;
height: 100vh;
transition: .5s;
z-index: 1;
}
#iframe {
display: table;
padding: 0;
border: 0;
width: 100%;
height: 100%;
}
#eclipse {
height: 100%;
width: 100%;
display: none;
position: absolute;
top: 0;
}
#yinyang {
transition: .5s;
}
#book-wrapper {
display: inline-block;
position: relative; /* 正确显示箭头和文字的堆叠, 这是关键一步 */
width: 50%;
z-index: 1;
}
#book-wrapper::before {
position: absolute;
right: 10px;
top: 18px;
content: "";
border: 10px solid transparent;
border-top-color: white;
cursor: pointer;
z-index: -1;
}
#book {
cursor: pointer;
border: none;
border-radius: 4px;
color: inherit;
background: transparent;
background-image: none;
height: 40px;
width: 100%;
font-size: inherit;
text-align: center;
-webkit-appearance: none;
-moz-appearance: none;
}
#book option {
color: black;
}
#book:focus {
outline: none;
}
#body-yellow {
background: #eec;
}
#body-blue {
background: #dbecff;
}
#body-purple {
background: #ddf;
}
#body-dark {
background: #222;
}
#body-pink {
background: #dce;
}
/* mobile phone */
@media screen and (min-resolution: 150dpi) {
header #article-title {
margin-right: 45px;
}
}
/* iphone */
@media screen and (-webkit-min-device-pixel-ratio:2) {
header #article-title {
margin-right: 45px;
}
}
#about {
transition: .3s;
transform: rotateY(calc(var(--flag) * 180deg));
--flag: 0;
}
#about > .back {
display: none;
position: absolute;
background: #fff;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: 20px;
text-align: center;
transform: scaleX(-1);
}
#about.back > .back {
display: block;
}
#about .img {
border-radius: 50%;
background: #eec;
margin: 10px auto 20px auto;
height: 80px;
width: 80px;
}
#about .links {
font-size: 0.9em;
color: #888;
text-align: center;
}
#about a {
font-size: 0.9em;
color: #259;
text-decoration: none;
}
#about hr {
border-color: #eee;
margin: 10px 0;
}
#about ul {
list-style-type: none;
}
.flex-center {
display: flex;
justify-content: center;
align-items: center;
}
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-thumb {
background-color: rgba(0,0,0,0.2);
background-clip: padding-box;
border-radius: 4px;
min-height: 28px;
}
::-webkit-scrollbar-track-piece {
background-color: transparent;
}
</style>
</head>
<body>
<nav id="nav" hidden>
<header>
<a id="prev-article">❮</a>
<div id="book-wrapper">
<select name="book" id="book" title="book">
<!--⌄-->
</select>
</div>
<a id="next-article">❯</a>
</header>
<!-- Search Engine Optimize -->
<ul id="table-of-contents"><li>示例<ul><li><a href="math/example/editor">公式编辑器</a></li><li><a href="math/example/mathml">Mathml</a></li><li><a href="math/example/surface">曲面在线绘制</a></li></ul></li><li>未分类<ul><li><a href="math/misc/0">问题</a></li><li><a href="math/misc/2">三角函数</a></li><li><a href="math/misc/3">不等式</a></li><li><a href="math/misc/4">微积分不等式</a></li><li><a href="math/misc/5">因式分解</a></li><li><a href="math/misc/6">数学家</a></li><li><a href="math/misc/7">算术与进制</a></li></ul></li><li>高等代数<ul><li><a href="math/linalg/0">初等代数</a></li><li><a href="math/linalg/1">矩阵</a></li><li><a href="math/linalg/2">行列式</a></li><li><a href="math/linalg/3">向量的相关性与线性方程组</a></li><li><a href="math/linalg/4">线性空间</a></li><li><a href="math/linalg/5">线性映射与线性变换</a></li><li><a href="math/linalg/6">特征值与特征向量</a></li><li><a href="math/linalg/7">λ 矩阵与相似标准形</a></li><li><a href="math/linalg/8">线性空间中的度量与内积</a></li><li><a href="math/linalg/9">实二次型与正定矩阵</a></li><li><a href="math/linalg/10">张量初步</a></li></ul></li><li>数学分析<ul><li><a href="math/analysis/0">附录</a></li><li><a href="math/analysis/1">初等函数</a></li><li><a href="math/analysis/2">数列的极限</a></li><li><a href="math/analysis/3">函数的极限与连续性</a></li><li><a href="math/analysis/5">导数的应用</a></li><li><a href="math/analysis/6">不定积分</a></li><li><a href="math/analysis/7">定积分与广义积分</a></li><li><a href="math/analysis/8">特殊函数 (1): Gamma 函数, Euler 和, 指对数积分</a></li><li><a href="math/analysis/9">特殊函数 (2): 椭圆函数, 超几何函数</a></li><li><a href="math/analysis/10">特殊函数 (3): Bernoulli 数与 Riemann zeta 函数</a></li><li><a href="math/analysis/11">常数项级数</a></li><li><a href="math/analysis/12">函数列与函数项级数</a></li><li><a href="math/analysis/13">Fourier 级数</a></li><li><a href="math/analysis/14">多元函数的极限与连续性</a></li><li><a href="math/analysis/15">多元函数微分学</a></li><li><a href="math/analysis/17">多元函数的极值</a></li><li><a href="math/analysis/19">重积分</a></li><li><a href="math/analysis/22">场论初步</a></li><li><a href="math/analysis/23">分数阶微积分</a></li><li><a href="math/analysis/24">函数方程</a></li></ul></li><li>数论<ul><li><a href="math/number/0">整数, 有理数, 代数数, 连分数</a></li><li><a href="math/number/1">整除, 最大公约数, 素数</a></li><li><a href="math/number/2">同余</a></li><li><a href="math/number/3">阶与原根</a></li><li><a href="math/number/4">二次剩余</a></li><li><a href="math/number/5">不定方程</a></li><li><a href="math/number/6">积性数论函数</a></li><li><a href="math/number/7">素数分布</a></li><li><a href="math/number/11">代数数域和代数整数</a></li><li><a href="math/number/12">理想的分解</a></li></ul></li><li>集合论与点集拓扑<ul><li><a href="math/set/2">集合及其运算</a></li><li><a href="math/set/3">二元关系与映射</a></li><li><a href="math/set/4">自然数</a></li><li><a href="math/set/6">基数</a></li><li><a href="math/set/7">Lambda 表达式</a></li><li><a href="math/set/8">范畴论基础</a></li></ul></li><li>复变函数<ul><li><a href="math/complex/1">复数与复变函数</a></li><li><a href="math/complex/2">全纯函数</a></li><li><a href="math/complex/3">复变函数的展开</a></li><li><a href="math/complex/6">积分变换</a></li></ul></li><li>实变函数<ul><li><a href="math/real/1">预备知识</a></li><li><a href="math/real/2">Lebesgue 测度</a></li><li><a href="math/real/3">可测函数</a></li><li><a href="math/real/4">Lebesgue 积分</a></li></ul></li><li>概率论<ul><li><a href="math/prob/1">事件与概率</a></li><li><a href="math/prob/2">随机变量</a></li><li><a href="math/prob/4">极限定理</a></li><li><a href="math/prob/5">常用分布</a></li></ul></li><li>数理统计<ul><li><a href="math/stat/1">数理统计的基本概念</a></li><li><a href="math/stat/2">参数估计与假设检验</a></li></ul></li><li>数值分析<ul><li><a href="math/numeric/2">插值与样条</a></li><li><a href="math/numeric/5">线性方程组</a></li><li><a href="math/numeric/6">矩阵</a></li><li><a href="math/numeric/7">非线性方程数值解法</a></li><li><a href="math/numeric/8">常微分方程数值解法</a></li><li><a href="math/numeric/9">偏微分方程的 Ritz-Galerkin 方法</a></li></ul></li><li>泛函分析<ul><li><a href="math/functional/1">度量空间</a></li><li><a href="math/functional/2">线性赋范空间</a></li><li><a href="math/functional/3">有界线性算子</a></li><li><a href="math/functional/4">Hilbert 空间及其上的有界线性算子</a></li></ul></li><li>抽象代数<ul><li><a href="math/algebra/2">群 (上)</a></li><li><a href="math/algebra/3">群 (中)</a></li><li><a href="math/algebra/4">群 (下)</a></li><li><a href="math/algebra/5">环</a></li><li><a href="math/algebra/6">模</a></li><li><a href="math/algebra/7">域</a></li><li><a href="math/algebra/8">Galois 理论</a></li></ul></li><li>李群与李代数<ul><li><a href="math/lie/0">矩阵李群</a></li><li><a href="math/lie/1">李代数初步</a></li></ul></li><li>拓扑学<ul><li><a href="math/topology/1">拓扑空间与连续映射</a></li><li><a href="math/topology/2">分离性、可数性、紧致性、连通性</a></li></ul></li><li>常微分方程<ul><li><a href="math/ode/2">一阶微分方程的初等解法</a></li><li><a href="math/ode/4">高阶微分方程</a></li><li><a href="math/ode/5">线性微分方程组</a></li></ul></li><li>偏微分方程<ul><li><a href="math/pde/1">方程的导出</a></li><li><a href="math/pde/2">波动方程</a></li><li><a href="math/pde/3">热传导方程</a></li><li><a href="math/pde/4">位势方程</a></li><li><a href="math/pde/5">二阶线性偏微分方程的分类</a></li></ul></li><li>平面几何<ul><li><a href="math/geometry/1">五组公理</a></li><li><a href="math/geometry/3">三角形, 四边形</a></li><li><a href="math/geometry/4">圆</a></li><li><a href="math/geometry/5">抛物线</a></li><li><a href="math/geometry/10">射影几何</a></li></ul></li><li>解析几何<ul><li><a href="math/analytic-geo/1">向量与坐标系</a></li><li><a href="math/analytic-geo/2">平面与直线</a></li><li><a href="math/analytic-geo/3">圆锥曲线与二次曲面</a></li><li><a href="math/analytic-geo/6">平面几何的复数解法</a></li></ul></li><li>微分几何<ul><li><a href="math/diff-geo/1">欧氏空间</a></li><li><a href="math/diff-geo/2">曲线的局部理论</a></li><li><a href="math/diff-geo/3">曲面的局部理论</a></li><li><a href="math/diff-geo/4">标架与曲面论基本定理</a></li><li><a href="math/diff-geo/5">曲面的内蕴几何学</a></li></ul></li><li>代数几何<ul><li><a href="math/ag/1">仿射簇</a></li></ul></li><li>运筹学<ul><li><a href="math/or/1">线性规划</a></li><li><a href="math/or/2">运输问题</a></li></ul></li><li>组合数学<ul><li><a href="math/comb/1">引言, 计数原理, 鸽巢原理</a></li><li><a href="math/comb/2">排列与组合</a></li><li><a href="math/comb/3">求解递推式</a></li><li><a href="math/comb/4">容斥原理</a></li><li><a href="math/comb/5">离散微积分与特殊计数序列</a></li><li><a href="math/comb/6">生成函数</a></li></ul></li><li>图论<ul><li><a href="math/graph/2">Paths and cycles</a></li></ul></li><li>数学游戏<ul><li><a href="math/recreation/1">数学游戏</a></li></ul></li><li>数据结构与算法<ul><li><a href="cs/ds/exercise">习题</a></li><li><a href="cs/ds/1">绪论</a></li><li><a href="cs/ds/2">线性表</a></li><li><a href="cs/ds/3">栈与队列</a></li><li><a href="cs/ds/4">递归与回溯</a></li><li><a href="cs/ds/5">字符串</a></li><li><a href="cs/ds/6">树与二叉树</a></li><li><a href="cs/ds/7">矩阵与广义表</a></li><li><a href="cs/ds/8">图</a></li><li><a href="cs/ds/9">查找</a></li><li><a href="cs/ds/10">随机算法</a></li><li><a href="cs/ds/11">排序</a></li><li><a href="cs/ds/12">文件</a></li><li><a href="cs/ds/13">数论算法</a></li><li><a href="cs/ds/14">动态规划与贪心算法</a></li><li><a href="cs/ds/15">计算几何</a></li><li><a href="cs/ds/16">算法题模板</a></li><li><a href="cs/ds/hardware">硬件算法</a></li></ul></li><li>机器学习<ul><li><a href="cs/ml/1">机器学习基础</a></li></ul></li><li>操作系统<ul><li><a href="cs/os/1">引论</a></li><li><a href="cs/os/2">进程</a></li><li><a href="cs/os/3">内存</a></li></ul></li><li>计算机组成原理<ul><li><a href="cs/com/1">计算机系统概论</a></li></ul></li><li>数据库系统概论<ul><li><a href="cs/db/1">绪论</a></li><li><a href="cs/db/2">关系数据库</a></li><li><a href="cs/db/3">SQL</a></li><li><a href="cs/db/exercise">数据库习题</a></li></ul></li><li>计算机网络<ul><li><a href="cs/net/1">概述</a></li><li><a href="cs/net/2">物理层</a></li></ul></li><li>工具<ul><li><a href="cs/utils/svg-flowchart">svg 流程图</a></li><li><a href="cs/utils/exam">无奖竞猜</a></li></ul></li><li>未分类<ul><li><a href="physics/misc/1">单位与数量</a></li><li><a href="physics/misc/6">物理学家</a></li></ul></li><li>力学<ul><li><a href="physics/mechanics/1">质点运动学</a></li></ul></li><li>流体力学<ul><li><a href="physics/hydro/1">流体力学基础</a></li></ul></li><li>量子力学<ul><li><a href="physics/quantum/1">波方程</a></li></ul></li><li>光学<ul><li><a href="physics/optics/1">光学</a></li></ul></li><li>相对论<ul><li><a href="physics/relativity/1">狭义相对论</a></li></ul></li><li>汉语<ul><li><a href="lang/zh/words">易读错字词整理</a></li><li><a href="lang/zh/typing">打字练习</a></li><li><a href="lang/zh/hinghwa">莆仙话</a></li></ul></li><li>日语<ul><li><a href="lang/jp/kana">学五十音</a></li><li><a href="lang/jp/words">日语动词</a></li></ul></li><li>歌词<ul><li><a href="lang/lyric/larc~en~ciel">L'arc~en~Ciel</a></li><li><a href="lang/lyric/crayon-shinchan">Crayon Shinchan</a></li><li><a href="lang/lyric/mucc">MUCC</a></li><li><a href="lang/lyric/sadie">sadie</a></li><li><a href="lang/lyric/sekima">sekima</a></li><li><a href="lang/lyric/leslie-cheung">张国荣</a></li></ul></li><li>旧作<ul><li><a href="lang/sleepy/niaoren">鸟人</a></li></ul></li><li>未分类<ul><li><a href="lang/misc/braille">盲文</a></li><li><a href="lang/misc/classical-cipher">古典密码</a></li></ul></li><li>工具<ul><li><a href="music/utils/tuner">调音器</a></li></ul></li><li>高等代数<ul><li><a href="exercise/linalg/0">第0章 整数,数域与多项式</a></li></ul></li><li>数学分析<ul><li><a href="exercise/analysis/1-1">实数的运算与序</a></li><li><a href="exercise/analysis/1-2">实数域的完备性</a></li><li><a href="exercise/analysis/1-3">初等函数</a></li><li><a href="exercise/analysis/2-1">数列极限的定义</a></li><li><a href="exercise/analysis/2-2">数列极限的性质</a></li><li><a href="exercise/analysis/2-3">趋于无穷的数列和三个记号</a></li><li><a href="exercise/analysis/2-4">几个重要的定理</a></li><li><a href="exercise/analysis/2-5">上极限和下极限</a></li><li><a href="exercise/analysis/3-1">函数的极限</a></li><li><a href="exercise/analysis/3-2">函数的极限(续)</a></li><li><a href="exercise/analysis/3-3">函数的连续性</a></li><li><a href="exercise/analysis/3-4">连续函数的性质</a></li><li><a href="exercise/analysis/4-1">导数的定义</a></li><li><a href="exercise/analysis/4-2">复合函数与反函数的导数</a></li><li><a href="exercise/analysis/4-3">函数的微分</a></li><li><a href="exercise/analysis/4-4">高阶导数</a></li><li><a href="exercise/analysis/4-5">向量函数的导数</a></li><li><a href="exercise/analysis/5-1">微分中值定理</a></li><li><a href="exercise/analysis/5-2">洛必达法则</a></li><li><a href="exercise/analysis/5-3">利用导数判定两个函数相等</a></li><li><a href="exercise/analysis/5-4">函数的增减性与极值</a></li><li><a href="exercise/analysis/5-5">函数的凹凸性</a></li><li><a href="exercise/analysis/5-6">泰勒公式</a></li><li><a href="exercise/analysis/5-7">方程求根的牛顿迭代公式</a></li><li><a href="exercise/analysis/5-8">函数的作图</a></li><li><a href="exercise/analysis/6-1">原函数与不定积分</a></li><li><a href="exercise/analysis/6-2">换元积分法和分部积分法</a></li><li><a href="exercise/analysis/6-3">几类初等函数的积分</a></li><li><a href="exercise/analysis/7-1">定积分的概念和基本性质</a></li><li><a href="exercise/analysis/7-2">定积分的计算</a></li><li><a href="exercise/analysis/8-1">定积分在分析学中的应用</a></li><li><a href="exercise/analysis/8-2">定积分在几何学中的应用</a></li><li><a href="exercise/analysis/8-3">定积分在物理学中的应用</a></li><li><a href="exercise/analysis/9-1">无穷积分</a></li><li><a href="exercise/analysis/9-2">瑕积分</a></li><li><a href="exercise/analysis/9-3">一些定积分公式的推广</a></li><li><a href="exercise/analysis/14-1">`RR^m` 中的点列和点集</a></li><li><a href="exercise/analysis/final-1">综合习题一</a></li><li><a href="exercise/analysis/final-2">综合习题二</a></li><li><a href="exercise/analysis/final-3">综合习题三</a></li></ul></li><li>抽象代数<ul><li><a href="exercise/algebra/1">集合论的基本概念</a></li><li><a href="exercise/algebra/2">抽象代数的基本概念</a></li></ul></li><li>实变函数<ul><li><a href="exercise/real/1-2">集合的运算</a></li><li><a href="exercise/real/1-3">映射与基数</a></li><li><a href="exercise/real/1-4">`RR^n` 中的度量, 点集的极限点</a></li><li><a href="exercise/real/1-5">闭集, 开集, Borel 集, Cantor 集</a></li></ul></li><li>算法导论<ul><li><a href="exercise/algorithm/2">算法基础</a></li><li><a href="exercise/algorithm/4">分治策略</a></li></ul></li></ul>
</nav>
<article id="article">
<header id="header">
<a id="yinyang" title="目录">☯</a>
<span id="article-title" class="ellipsis"></span>
<span class="search">
<input id="search-box"><button title="search" id="search-button"></button>
</span>
<a id="show-about" title="About" style="font-size:1.5em">❧</a>
</header>
<div id="eclipse"></div>
<div id="about" style="display:none">
<div class="img flex-center">
<img src="img/pikachu.png" alt="头像">
</div>
<center>zmx0142857</center>
<p class="links">
<a href="mailto:[email protected]" target="_blank">邮箱</a>・<a href="https://github.com/zmx0142857" target="_blank">github</a>
</p>
<hr>
<div class="links">
友情链接:
<ul>
<li>數心 <a href="https://matheart.github.io" target="_blank">github</a>・<a href="https://space.bilibili.com/346660989" target="_blank">bilibili</a></li>
<li>mobtgzhang <a href="https://mobtgzhang.github.io" target="_blank">github</a></li>
<li>widcardw <a href="https://widcard.win/" target="_blank">blog</a></li>
</ul>
</div>
<div class="back">
广告位招租
</div>
</div>
</article>
<script src="js/toc.js"></script>
<script src="js/ui.js"></script>
<script>
'use strict';
(function(){
// 时尚卡片
{
const aboutDlg = new Modal('about')
$('#show-about').onclick = function () {
aboutDlg.toggle()
}
const about = $('#about').addEventListener('click', function () {
var degY = parseInt(this.style.getPropertyValue('--flag'))
degY = !degY ? 1 : 0
degY ? this.classList.add('back') : this.classList.remove('back')
this.style.setProperty('--flag', degY)
}, true) // 向上冒泡
}
function mockClick (el) {
el.dispatchEvent(new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true
}))
}
// 能用就行的搜索框交互
{
const searchBox = $('#search-box')
$('#search-button').addEventListener('click', function () {
if (searchBox.value) {
searchBox.classList.add('focus')
} else {
searchBox.classList.remove('focus')
// 模拟点击 body, 使得提示框自动关闭
mockClick(document.body)
}
this.blur()
})
}
// elements
let notify, iframe
const article = $('#article'),
header = $('#header'),
nav = $('#nav'),
yinyang = $('#yinyang'),
eclipse = $('#eclipse'),
toggleShowHeader = $('#toggle-show-header')
//header.onmouseover = () => headerVisible(true)
//header.onmouseout = () => headerVisible(false)
yinyang.onclick = eclipse.onclick = () => hideNav()
function createIframe(src, title) {
if (iframe) article.removeChild(iframe)
// 全新创建的 iframe 不会影响 history
iframe = $('<iframe>', {
id: 'iframe',
title,
src,
onload () {
notify.remove()
iframe.focus()
toggleHideHeader(iframe)
//iframe.contentWindow.handleKeyboard = handleKeyboard;
}
})
article.insertBefore(iframe, eclipse)
$('#article-title').innerText = title
document.title = title
}
function hideNav(flag) {
if (!nav.hidden || flag) {
nav.hidden = true
nav.style.width = '0'
article.style.marginLeft = '0'
yinyang.style.transform = 'none'
eclipse.style.display = 'none'
setTimeout(() => document.body.style.overflowX = 'unset', 500)
//headerVisible(false)
setTimeout(() => mockClick(iframe), 100)
} else {
nav.removeAttribute('hidden')
nav.style.width = '16em'
article.style.marginLeft = '16em'
yinyang.style.transform = 'rotate(540deg)'
eclipse.style.display = 'block'
document.body.style.overflowX = 'hidden'
//headerVisible(true)
}
}
function toggleHideHeader(iframe) {
const doc = iframe.contentDocument
const body = doc.body
let prevScrollTop = doc.documentElement.scrollTop || body.scrollTop
let prevHide = false
let isBusy = false
body.onscroll = function(e) {
let scrollTop = doc.documentElement.scrollTop || body.scrollTop
if (Math.abs(scrollTop - prevScrollTop) < 5) return
const hide = scrollTop > prevScrollTop
if (hide != prevHide) {
if (isBusy) return
isBusy = true
setTimeout(() => { isBusy = false }, 500)
if (hide) {
header.classList.add('hidden')
} else {
header.classList.remove('hidden')
}
}
prevScrollTop = scrollTop
prevHide = hide
}
}
/* function headerVisible(flag) {
// 首页导航条不隐藏
if (/math\/example\/editor\.html$/.test(iframe.src)) {
flag = true
}
if (!nav.hidden || flag) {
header.removeAttribute('hidden')
header.style.opacity = '1'
} else {
header.hidden = true
header.style.opacity = '0'
}
}*/
// 路由加载
const router = {
tree: { children: tocData },
route: [],
currentBook: '',
$book: $('#book', {
onchange (e) {
router.go(e.target.value.split('/'))
}
}, tocData.map(book => $('<option>', { innerText: book.label, value: book.value }))),
$prev: $('#prev-article', {
onclick () {
const node = router.find()
if (node?.prev) router.go(node.prev.route)
},
}),
$next: $('#next-article', {
onclick () {
const node = router.find()
if (node?.next) router.go(node.next.route)
},
}),
find () {
let node = this.tree
for (let i = 0; i < 3; ++i) {
node = node?.children?.find(v => v.value === this.route[i])
}
return node
},
initToc () {
let route = []
let prev
const initBook = (node) => {
route.push(node.value)
if (node.children) {
node.children.forEach(initBook)
} else {
node.route = [...route]
node.prev = prev
if (prev) prev.next = node
prev = node
}
route.pop()
}
this.tree.children.forEach(initBook)
},
renderToc ({ value, label, children }) {
// within a month
const isRecent = (dateStr) => !!dateStr && (new Date() - new Date(dateStr) < 30 * 86400 * 1000)
const preventDefault = (e) => e.preventDefault()
const latest = []
const frag = $('', {}, children.map((group) => {
const ul = $('<ul>', {}, group.children.map((article) => {
const onclick = () => {
this.go([value, group.value, article.value])
}
const a = $('<a>', {
innerText: article.label,
href: '#' + value + '/' + group.value + '/' + article.value,
onclick: preventDefault,
});
const isNew = isRecent(article.date)
const child = $('<li>', {
title: article.label,
className: isNew ? ['isnew'] : [],
onclick,
}, a);
if (isNew) {
const copy = child.cloneNode(true)
// 为 copy 重新绑定事件
copy.firstChild.onclick = preventDefault
copy.onclick = onclick
copy.title = article.date
latest.push(copy)
}
return child
}))
return $('<li>', group.label, ul)
}))
const latestUl = $('<ul>', {}, latest.sort((x, y) => x.title > y.title ? -1 : 1).slice(0, 10))
frag.insertBefore($('<li>', '最近', latestUl), frag.firstChild)
const id = 'table-of-contents'
const newtoc = $('<ul>', { id }, frag)
nav.replaceChild(newtoc, $('#' + id))
},
updateToc () {
const lis = document.querySelectorAll('#table-of-contents li')
const hash = this.route.slice(0, 3).join('/')
Array.from(lis).forEach(li => {
const { href } = li.firstChild
const index = href?.indexOf('#')
if (index > -1 && hash === href.slice(index+1)) {
li.classList.add('active')
} else {
li.classList.remove('active')
}
})
},
loadBook (value) {
if (this.currentBook === value) return
const book = tocData.find(v => v.value === value)
if (!book) return
this.currentBook = value
this.$book.value = value
const { color = 'yellow', favicon = 'pikachu.png' } = book
document.body.id = 'body-' + color
$('#favicon').href = 'img/' + favicon
this.renderToc(book)
},
// [book, group, article, anchor]
go (route) {
let node = this.tree
for (let i = 0; i < 3; ++i) {
let child = node.children.find(v => v.value === route[i] || '')
if (!child) {
child = node.children[0]
route[i] = child.value
}
node = child
}
if (!route[3]) route[3] = ''
this.route = route
this.loadBook(route[0])
let url = route.slice(0, 3).join('/')
window.history.pushState(null, null, '#' + url + (route[3] ? '/' + route[3] : ''))
if (!url.endsWith('.html')) url += '.html'
if (node) {
notify = new Notify('加载中...')
this.updateToc()
hideNav(true)
createIframe(url + '#' + route[3], node.label)
}
},
init () {
this.initToc()
window.onhashchange = (e) => {
this.go(location.hash.slice(1).split('/'))
}
window.onhashchange()
},
}
router.init()
})();
</script>
<!-- 站内搜索, 注入 dom #search-box #search-button -->
<script async src="https://js.sitesearch360.com/plugin/bundle/1027.js"></script>
</body>
</html>