<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>程序员 on Liangweidong's blog</title><link>https://liangweidonggood.github.io/tags/%E7%A8%8B%E5%BA%8F%E5%91%98/</link><description>Recent content in 程序员 on Liangweidong's blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Fri, 15 Dec 2017 00:00:00 +0800</lastBuildDate><atom:link href="https://liangweidonggood.github.io/tags/%E7%A8%8B%E5%BA%8F%E5%91%98/index.xml" rel="self" type="application/rss+xml"/><item><title>简明数学手册：符号、概念与公式速查</title><link>https://liangweidonggood.github.io/p/jian-ming-shu-xue-shou-ce-2017/</link><pubDate>Fri, 15 Dec 2017 00:00:00 +0800</pubDate><guid>https://liangweidonggood.github.io/p/jian-ming-shu-xue-shou-ce-2017/</guid><description>&lt;img src="https://liangweidonggood.github.io/p/jian-ming-shu-xue-shou-ce-2017/image/cover.jpg" alt="Featured image of post 简明数学手册：符号、概念与公式速查" /&gt;&lt;h2 id="为什么放编程分类"&gt;为什么放编程分类
&lt;/h2&gt;&lt;p&gt;这篇不是大学数学课本的目录——而是&lt;strong&gt;程序员的数学工具书&lt;/strong&gt;。做技术博客分类时，我没把它放进「数学/科学」大类，而是放在「编程」下面，理由有三：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;公式不是用来考试&lt;/strong&gt;——是写代码时&lt;strong&gt;查表用&lt;/strong&gt;的。看到 &lt;code&gt;Σ&lt;/code&gt;、&lt;code&gt;∂&lt;/code&gt;、&lt;code&gt;lim&lt;/code&gt; 就知道在写什么，看到 &lt;code&gt;T(n) = O(n²)&lt;/code&gt; 就能在 code review 里挑出性能 bug&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数学是计算机的母语&lt;/strong&gt;——所有算法、数据结构、机器学习、图形学、密码学底层都是这一套符号 + 公式。&lt;strong&gt;不会这套符号就读不懂 RFC、论文、源码注释&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;学习路径配套&lt;/strong&gt;——本站点「算法 / 数据结构」「机器学习」「密码学」「游戏开发」等分类的&lt;strong&gt;前置知识&lt;/strong&gt;就是这一页。先建索引，再深入分支&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;所以这篇的定位是：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;放办公桌的&amp;quot;数学速查表&amp;quot;&lt;/strong&gt;——遇到不熟的符号翻 30 秒，回到 IDE 继续写代码。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;下面这张表汇总了 5 个&lt;strong&gt;最常见的工程场景&lt;/strong&gt;对应的数学分支，方便按需跳转：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;场景&lt;/th&gt;
					&lt;th&gt;用到的数学&lt;/th&gt;
					&lt;th&gt;跳转&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;哈希表 / 布隆过滤器&lt;/td&gt;
					&lt;td&gt;概率、模运算&lt;/td&gt;
					&lt;td&gt;&lt;a class="link" href="#%e5%93%88%e5%b8%8c" &gt;哈希&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;密码学 / RSA&lt;/td&gt;
					&lt;td&gt;数论、模逆、欧拉函数&lt;/td&gt;
					&lt;td&gt;&lt;a class="link" href="#%e6%95%b0%e8%ae%ba%e5%9f%ba%e7%a1%80" &gt;数论基础&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据校验 / CRC&lt;/td&gt;
					&lt;td&gt;异或、有限域&lt;/td&gt;
					&lt;td&gt;&lt;a class="link" href="#crc--%e6%a0%a1%e9%aa%8c%e5%92%8c" &gt;CRC / 校验&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;图像 / 音视频处理&lt;/td&gt;
					&lt;td&gt;三角函数、傅里叶&lt;/td&gt;
					&lt;td&gt;&lt;a class="link" href="#%e4%b8%89%e8%a7%92%e6%81%92%e7%ad%89%e5%bc%8f" &gt;三角恒等式&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;机器学习 / 深度学习&lt;/td&gt;
					&lt;td&gt;线性代数、概率、梯度&lt;/td&gt;
					&lt;td&gt;&lt;a class="link" href="#%e7%ba%bf%e6%80%a7%e4%bb%a3%e6%95%b0" &gt;线性代数&lt;/a&gt; / &lt;a class="link" href="#%e6%a6%82%e7%8e%87%e7%bb%9f%e8%ae%a1" &gt;概率统计&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="常用数学符号"&gt;常用数学符号
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;符号&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;$\in$&lt;/td&gt;
					&lt;td&gt;属于&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\notin$&lt;/td&gt;
					&lt;td&gt;不属于&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\subseteq$&lt;/td&gt;
					&lt;td&gt;子集&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\cup$&lt;/td&gt;
					&lt;td&gt;并集&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\cap$&lt;/td&gt;
					&lt;td&gt;交集&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\emptyset$&lt;/td&gt;
					&lt;td&gt;空集&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\forall$&lt;/td&gt;
					&lt;td&gt;全称量词（任意）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\exists$&lt;/td&gt;
					&lt;td&gt;存在量词（存在）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\nexists$&lt;/td&gt;
					&lt;td&gt;不存在&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\Rightarrow$&lt;/td&gt;
					&lt;td&gt;推出&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\Leftrightarrow$&lt;/td&gt;
					&lt;td&gt;等价&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\sum$&lt;/td&gt;
					&lt;td&gt;求和&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\prod$&lt;/td&gt;
					&lt;td&gt;求积&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\int$&lt;/td&gt;
					&lt;td&gt;积分&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\partial$&lt;/td&gt;
					&lt;td&gt;偏导数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\nabla$&lt;/td&gt;
					&lt;td&gt;梯度 / 散度&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\infty$&lt;/td&gt;
					&lt;td&gt;无穷&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\approx$&lt;/td&gt;
					&lt;td&gt;约等于&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\equiv$&lt;/td&gt;
					&lt;td&gt;恒等于&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\propto$&lt;/td&gt;
					&lt;td&gt;成正比&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="集合与逻辑"&gt;集合与逻辑
&lt;/h2&gt;&lt;h3 id="集合运算律"&gt;集合运算律
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;交换律：$A \cup B = B \cup A$，$A \cap B = B \cap A$&lt;/li&gt;
&lt;li&gt;结合律：$(A \cup B) \cup C = A \cup (B \cup C)$&lt;/li&gt;
&lt;li&gt;分配律：$A \cap (B \cup C) = (A \cap B) \cup (A \cap C)$&lt;/li&gt;
&lt;li&gt;德摩根：$\overline{A \cup B} = \overline{A} \cap \overline{B}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="命题逻辑"&gt;命题逻辑
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;命题&lt;/th&gt;
					&lt;th&gt;符号&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;合取&lt;/td&gt;
					&lt;td&gt;$P \land Q$&lt;/td&gt;
					&lt;td&gt;P 且 Q&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;析取&lt;/td&gt;
					&lt;td&gt;$P \lor Q$&lt;/td&gt;
					&lt;td&gt;P 或 Q&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;否定&lt;/td&gt;
					&lt;td&gt;$\neg P$&lt;/td&gt;
					&lt;td&gt;非 P&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;蕴含&lt;/td&gt;
					&lt;td&gt;$P \Rightarrow Q$&lt;/td&gt;
					&lt;td&gt;P 蕴含 Q&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;等价&lt;/td&gt;
					&lt;td&gt;$P \Leftrightarrow Q$&lt;/td&gt;
					&lt;td&gt;P 等价 Q&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="初等代数"&gt;初等代数
&lt;/h2&gt;&lt;h3 id="乘法公式"&gt;乘法公式
&lt;/h3&gt;$$(a \pm b)^2 = a^2 \pm 2ab + b^2$$&lt;p&gt;
&lt;/p&gt;
$$(a + b)(a - b) = a^2 - b^2$$&lt;p&gt;
&lt;/p&gt;
$$(a \pm b)^3 = a^3 \pm 3a^2 b + 3ab^2 \pm b^3$$&lt;p&gt;
&lt;/p&gt;
$$a^3 \pm b^3 = (a \pm b)(a^2 \mp ab + b^2)$$&lt;h3 id="一元二次方程-ax2--bx--c--0"&gt;一元二次方程 $ax^2 + bx + c = 0$
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;判别式：$\Delta = b^2 - 4ac$&lt;/li&gt;
&lt;li&gt;根：$x = \frac{-b \pm \sqrt{\Delta}}{2a}$&lt;/li&gt;
&lt;li&gt;韦达：$x_1 + x_2 = -\frac{b}{a}$，$x_1 x_2 = \frac{c}{a}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="指数"&gt;指数
&lt;/h3&gt;$$a^m \cdot a^n = a^{m+n}$$&lt;p&gt;
&lt;/p&gt;
$$\frac{a^m}{a^n} = a^{m-n}$$&lt;p&gt;
&lt;/p&gt;
$$(a^m)^n = a^{mn}$$&lt;p&gt;
&lt;/p&gt;
$$a^{-n} = \frac{1}{a^n}$$&lt;p&gt;
&lt;/p&gt;
$$a^0 = 1 \quad (a \neq 0)$$&lt;h3 id="对数"&gt;对数
&lt;/h3&gt;$$\log_a(xy) = \log_a x + \log_a y$$&lt;p&gt;
&lt;/p&gt;
$$\log_a \frac{x}{y} = \log_a x - \log_a y$$&lt;p&gt;
&lt;/p&gt;
$$\log_a x^n = n \log_a x$$&lt;p&gt;
&lt;/p&gt;
$$\log_a b = \frac{\ln b}{\ln a}$$&lt;p&gt;
&lt;/p&gt;
$$\ln e = 1, \quad \log_{10} 10 = 1$$&lt;h3 id="三角恒等式"&gt;三角恒等式
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;基本关系&lt;/strong&gt;：&lt;/p&gt;
$$\sin^2 x + \cos^2 x = 1$$&lt;p&gt;
&lt;/p&gt;
$$\tan x = \frac{\sin x}{\cos x}$$&lt;p&gt;&lt;strong&gt;和差角&lt;/strong&gt;：&lt;/p&gt;
$$\sin(\alpha \pm \beta) = \sin\alpha \cos\beta \pm \cos\alpha \sin\beta$$&lt;p&gt;
&lt;/p&gt;
$$\cos(\alpha \pm \beta) = \cos\alpha \cos\beta \mp \sin\alpha \sin\beta$$&lt;p&gt;&lt;strong&gt;二倍角&lt;/strong&gt;：&lt;/p&gt;
$$\sin 2x = 2 \sin x \cos x$$&lt;p&gt;
&lt;/p&gt;
$$\cos 2x = \cos^2 x - \sin^2 x = 1 - 2\sin^2 x = 2\cos^2 x - 1$$&lt;p&gt;&lt;strong&gt;半角&lt;/strong&gt;：&lt;/p&gt;
$$\sin^2 \frac{x}{2} = \frac{1 - \cos x}{2}$$&lt;p&gt;
&lt;/p&gt;
$$\cos^2 \frac{x}{2} = \frac{1 + \cos x}{2}$$&lt;p&gt;&lt;strong&gt;和差化积&lt;/strong&gt;：&lt;/p&gt;
$$\sin \alpha + \sin \beta = 2 \sin \frac{\alpha + \beta}{2} \cos \frac{\alpha - \beta}{2}$$&lt;p&gt;
&lt;/p&gt;
$$\cos \alpha + \cos \beta = 2 \cos \frac{\alpha + \beta}{2} \cos \frac{\alpha - \beta}{2}$$&lt;h3 id="解三角形"&gt;解三角形
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;正弦定理&lt;/strong&gt;：$\frac{a}{\sin A} = \frac{b}{\sin B} = \frac{c}{\sin C} = 2R$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;余弦定理&lt;/strong&gt;：$c^2 = a^2 + b^2 - 2ab \cos C$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;三角形面积&lt;/strong&gt;：$S = \frac{1}{2}ab \sin C = \frac{abc}{4R}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="解析几何"&gt;解析几何
&lt;/h2&gt;&lt;h3 id="直线"&gt;直线
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;点斜式：$y - y_0 = k(x - x_0)$&lt;/li&gt;
&lt;li&gt;斜截式：$y = kx + b$&lt;/li&gt;
&lt;li&gt;一般式：$Ax + By + C = 0$&lt;/li&gt;
&lt;li&gt;两点距离：$d = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}$&lt;/li&gt;
&lt;li&gt;点到直线：$d = \frac{|Ax_0 + By_0 + C|}{\sqrt{A^2 + B^2}}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="圆"&gt;圆
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;标准：$(x-a)^2 + (y-b)^2 = r^2$&lt;/li&gt;
&lt;li&gt;一般：$x^2 + y^2 + Dx + Ey + F = 0$&lt;/li&gt;
&lt;li&gt;圆心：$(-\frac{D}{2}, -\frac{E}{2})$，$r = \frac{\sqrt{D^2 + E^2 - 4F}}{2}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="椭圆-fracx2a2--fracy2b2--1"&gt;椭圆 $\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;$a &amp;gt; b &amp;gt; 0$&lt;/li&gt;
&lt;li&gt;离心率 $e = c/a = \sqrt{1 - b^2/a^2}$&lt;/li&gt;
&lt;li&gt;焦点 $F_1(-c, 0)$，$F_2(c, 0)$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="双曲线-fracx2a2---fracy2b2--1"&gt;双曲线 $\frac{x^2}{a^2} - \frac{y^2}{b^2} = 1$
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;离心率 $e = c/a = \sqrt{1 + b^2/a^2}$&lt;/li&gt;
&lt;li&gt;渐近线 $y = \pm \frac{b}{a} x$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="抛物线-y2--2px"&gt;抛物线 $y^2 = 2px$
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;焦点 $(\frac{p}{2}, 0)$，准线 $x = -\frac{p}{2}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="微积分"&gt;微积分
&lt;/h2&gt;&lt;h3 id="极限"&gt;极限
&lt;/h3&gt;$$\lim_{x \to 0} \frac{\sin x}{x} = 1$$&lt;p&gt;
&lt;/p&gt;
$$\lim_{x \to 0} \frac{1 - \cos x}{x^2} = \frac{1}{2}$$&lt;p&gt;
&lt;/p&gt;
$$\lim_{x \to \infty} \left(1 + \frac{1}{x}\right)^x = e$$&lt;h3 id="常用导数"&gt;常用导数
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;$f(x)$&lt;/th&gt;
					&lt;th&gt;$f&amp;rsquo;(x)$&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;$c$&lt;/td&gt;
					&lt;td&gt;$0$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$x^n$&lt;/td&gt;
					&lt;td&gt;$nx^{n-1}$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$e^x$&lt;/td&gt;
					&lt;td&gt;$e^x$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$a^x$&lt;/td&gt;
					&lt;td&gt;$a^x \ln a$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\ln x$&lt;/td&gt;
					&lt;td&gt;$1/x$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\log_a x$&lt;/td&gt;
					&lt;td&gt;$\frac{1}{x \ln a}$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\sin x$&lt;/td&gt;
					&lt;td&gt;$\cos x$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\cos x$&lt;/td&gt;
					&lt;td&gt;$-\sin x$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\tan x$&lt;/td&gt;
					&lt;td&gt;$\sec^2 x$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\arcsin x$&lt;/td&gt;
					&lt;td&gt;$\frac{1}{\sqrt{1-x^2}}$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\arctan x$&lt;/td&gt;
					&lt;td&gt;$\frac{1}{1+x^2}$&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="常用积分"&gt;常用积分
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;$f(x)$&lt;/th&gt;
					&lt;th&gt;$\int f(x) , dx$&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;$0$&lt;/td&gt;
					&lt;td&gt;$C$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$x^a$&lt;/td&gt;
					&lt;td&gt;$\frac{x^{a+1}}{a+1} + C$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$1/x$&lt;/td&gt;
					&lt;td&gt;$\ln&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$e^x$&lt;/td&gt;
					&lt;td&gt;$e^x + C$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\sin x$&lt;/td&gt;
					&lt;td&gt;$-\cos x + C$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\cos x$&lt;/td&gt;
					&lt;td&gt;$\sin x + C$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\sec^2 x$&lt;/td&gt;
					&lt;td&gt;$\tan x + C$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\frac{1}{\sqrt{1-x^2}}$&lt;/td&gt;
					&lt;td&gt;$\arcsin x + C$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;$\frac{1}{1+x^2}$&lt;/td&gt;
					&lt;td&gt;$\arctan x + C$&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="微分中值定理"&gt;微分中值定理
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;罗尔&lt;/strong&gt;：$f(a) = f(b)$，$\exists \xi \in (a, b)$，$f&amp;rsquo;(\xi) = 0$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;拉格朗日&lt;/strong&gt;：$\exists \xi$，$f&amp;rsquo;(\xi) = \frac{f(b)-f(a)}{b-a}$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;柯西&lt;/strong&gt;：$\exists \xi$，$\frac{f&amp;rsquo;(\xi)}{g&amp;rsquo;(\xi)} = \frac{f(b)-f(a)}{g(b)-g(a)}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="泰勒公式"&gt;泰勒公式
&lt;/h3&gt;$$f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(x_0)}{n!}(x - x_0)^n$$&lt;p&gt;常用展开：&lt;/p&gt;
$$e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots$$&lt;p&gt;
&lt;/p&gt;
$$\sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \cdots$$&lt;p&gt;
&lt;/p&gt;
$$\cos x = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \cdots$$&lt;p&gt;
&lt;/p&gt;
$$\ln(1+x) = x - \frac{x^2}{2} + \frac{x^3}{3} - \cdots$$&lt;p&gt;
&lt;/p&gt;
$$\frac{1}{1-x} = 1 + x + x^2 + x^3 + \cdots$$&lt;h2 id="线性代数"&gt;线性代数
&lt;/h2&gt;&lt;h3 id="矩阵"&gt;矩阵
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;行列式（2x2）：$\begin{vmatrix} a &amp;amp; b \ c &amp;amp; d \end{vmatrix} = ad - bc$&lt;/li&gt;
&lt;li&gt;矩阵乘法：$(AB)&lt;em&gt;{ij} = \sum_k A&lt;/em&gt;{ik} B_{kj}$&lt;/li&gt;
&lt;li&gt;矩阵转置：$(A^T)&lt;em&gt;{ij} = A&lt;/em&gt;{ji}$&lt;/li&gt;
&lt;li&gt;矩阵求逆：$A^{-1} = \frac{1}{\det A} A^&lt;em&gt;$（$A^&lt;/em&gt;$ 是伴随矩阵）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="特征值与特征向量"&gt;特征值与特征向量
&lt;/h3&gt;$$A \mathbf{v} = \lambda \mathbf{v}$$$$\det(A - \lambda I) = 0$$&lt;h3 id="重要矩阵"&gt;重要矩阵
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;单位矩阵 $I$：对角线 1&lt;/li&gt;
&lt;li&gt;零矩阵 $O$：全 0&lt;/li&gt;
&lt;li&gt;对角矩阵 $\text{diag}(d_1, d_2, \ldots, d_n)$&lt;/li&gt;
&lt;li&gt;对称矩阵 $A^T = A$&lt;/li&gt;
&lt;li&gt;正交矩阵 $A^T A = I$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="概率统计"&gt;概率统计
&lt;/h2&gt;&lt;h3 id="概率公式"&gt;概率公式
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;条件概率：$P(A|B) = \frac{P(AB)}{P(B)}$&lt;/li&gt;
&lt;li&gt;全概率：$P(A) = \sum_i P(B_i) P(A|B_i)$&lt;/li&gt;
&lt;li&gt;贝叶斯：$P(B_j|A) = \frac{P(B_j) P(A|B_j)}{\sum_i P(B_i) P(A|B_i)}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常见分布"&gt;常见分布
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;分布&lt;/th&gt;
					&lt;th&gt;期望&lt;/th&gt;
					&lt;th&gt;方差&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;0-1 (B(1, p))&lt;/td&gt;
					&lt;td&gt;$p$&lt;/td&gt;
					&lt;td&gt;$p(1-p)$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;二项 B(n, p)&lt;/td&gt;
					&lt;td&gt;$np$&lt;/td&gt;
					&lt;td&gt;$np(1-p)$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;泊松 P(λ)&lt;/td&gt;
					&lt;td&gt;$λ$&lt;/td&gt;
					&lt;td&gt;$λ$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;指数 Exp(λ)&lt;/td&gt;
					&lt;td&gt;$1/λ$&lt;/td&gt;
					&lt;td&gt;$1/λ^2$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;正态 N(μ, σ²)&lt;/td&gt;
					&lt;td&gt;$μ$&lt;/td&gt;
					&lt;td&gt;$σ^2$&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;均匀 U(a, b)&lt;/td&gt;
					&lt;td&gt;$(a+b)/2$&lt;/td&gt;
					&lt;td&gt;$(b-a)^2/12$&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="期望--方差性质"&gt;期望 / 方差性质
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;$E(c) = c$，$E(aX + b) = aE(X) + b$&lt;/li&gt;
&lt;li&gt;$D(c) = 0$，$D(aX + b) = a^2 D(X)$&lt;/li&gt;
&lt;li&gt;独立：$E(XY) = E(X)E(Y)$，$D(X+Y) = D(X) + D(Y)$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="离散数学"&gt;离散数学
&lt;/h2&gt;&lt;h3 id="集合"&gt;集合
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;$|A \cup B| = |A| + |B| - |A \cap B|$&lt;/li&gt;
&lt;li&gt;$|A \cup B \cup C| = |A|+|B|+|C| - |A \cap B| - |B \cap C| - |A \cap C| + |A \cap B \cap C|$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="排列组合"&gt;排列组合
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;排列：$P(n, k) = \frac{n!}{(n-k)!}$&lt;/li&gt;
&lt;li&gt;组合：$C(n, k) = \binom{n}{k} = \frac{n!}{k!(n-k)!}$&lt;/li&gt;
&lt;li&gt;性质：$C(n, k) = C(n, n-k)$，$C(n+1, k) = C(n, k) + C(n, k-1)$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="鸽巢原理"&gt;鸽巢原理
&lt;/h3&gt;&lt;p&gt;把 $n+1$ 个物品放入 $n$ 个盒子，至少有一个盒子包含至少 2 个物品。&lt;/p&gt;
&lt;h2 id="程序员常用"&gt;程序员常用
&lt;/h2&gt;&lt;h3 id="浮点数ieee-754"&gt;浮点数（IEEE 754）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;单精度：32 位（1 符号 + 8 指数 + 23 尾数）&lt;/li&gt;
&lt;li&gt;双精度：64 位（1 符号 + 11 指数 + 52 尾数）&lt;/li&gt;
&lt;li&gt;精度：$2^{-23} \approx 1.19 \times 10^{-7}$（单精度）&lt;/li&gt;
&lt;li&gt;舍入模式：最近偶数舍入（默认）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="哈希"&gt;哈希
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;期望冲突：$\frac{k(k-1)}{2n}$（$k$ 个 key，$n$ 个 slot）&lt;/li&gt;
&lt;li&gt;生日悖论：50% 冲突需要 $\approx 1.18\sqrt{n}$ 个 key&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="复杂度"&gt;复杂度
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;主定理：$T(n) = aT(n/b) + f(n)$
&lt;ul&gt;
&lt;li&gt;若 $f(n) = O(n^{\log_b a - \epsilon})$，$T(n) = \Theta(n^{\log_b a})$&lt;/li&gt;
&lt;li&gt;若 $f(n) = \Theta(n^{\log_b a})$，$T(n) = \Theta(n^{\log_b a} \log n)$&lt;/li&gt;
&lt;li&gt;若 $f(n) = \Omega(n^{\log_b a + \epsilon})$，$T(n) = \Theta(f(n))$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="在-5-个工程场景的应用"&gt;在 5 个工程场景的应用
&lt;/h2&gt;&lt;p&gt;这一节给上面零散的公式&lt;strong&gt;穿上工程外衣&lt;/strong&gt;——每个场景都对应到具体的代码 / 库 / 工具，让公式不再停留在纸面。&lt;/p&gt;
&lt;h3 id="场景-1哈希表与布隆过滤器"&gt;场景 1：哈希表与布隆过滤器
&lt;/h3&gt;&lt;p&gt;哈希函数的核心是把任意 key 映射到 &lt;code&gt;[0, n)&lt;/code&gt; 的 slot：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Python dict 用的是开放寻址 + SipHash（防 hash flooding 攻击）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 期望冲突数：E[collisions] = k(k-1) / (2n) # k 个 key, n 个 slot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 50% 冲突概率：k ≈ 1.177√n # 生日悖论&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;hashlib&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;my_hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;hashlib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sha256&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;big&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;布隆过滤器&lt;/strong&gt;用 k 个哈希函数 + m 位数组，&lt;strong&gt;假阳率&lt;/strong&gt;：&lt;/p&gt;
$$P_{fp} = \left(1 - e^{-kn/m}\right)^k$$&lt;h3 id="场景-2密码学--rsa"&gt;场景 2：密码学 / RSA
&lt;/h3&gt;&lt;p&gt;RSA 依赖三个数论核心：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. 模逆：a*x ≡ 1 (mod p) → 用扩展欧几里得算法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;modinv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 费马小定理，p 是质数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. 欧拉函数：φ(n) = n * Π(1 - 1/p_i)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 3. RSA：c = m^e mod n，m = c^d mod n (其中 d = modinv(e, φ(n)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 实际用 PyCryptodome&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;Crypto.PublicKey&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;RSA&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;RSA&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;cipher&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plain&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;decrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cipher&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键定理&lt;/strong&gt;：欧拉定理 $a^{\phi(n)} \equiv 1 \pmod n$、费马小定理 $a^{p-1} \equiv 1 \pmod p$（p 是质数）。&lt;/p&gt;
&lt;h3 id="场景-3crc--校验和"&gt;场景 3：CRC / 校验和
&lt;/h3&gt;&lt;p&gt;CRC（Cyclic Redundancy Check）= &lt;strong&gt;多项式除法的余数&lt;/strong&gt;。以太网、ZIP、PNG 全用它。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# CRC-32 (以太网)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;zlib&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello world&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;crc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;zlib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;crc32&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xffffffff&lt;/span&gt; &lt;span class="c1"&gt;# 0x0d4a1185&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 手动算 CRC-8 (多项式 x^8 + x^2 + x + 1 = 0x07)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;crc8&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;poly&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mh"&gt;0x07&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;crc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;crc&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;byte&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;crc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;crc&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;poly&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;crc&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;crc&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xff&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键数学&lt;/strong&gt;：有限域 GF(2⁸) 上的多项式模 2 除法。&lt;/p&gt;
&lt;h3 id="场景-4图像--音视频处理"&gt;场景 4：图像 / 音视频处理
&lt;/h3&gt;&lt;p&gt;旋转、缩放、JPEG 压缩、音频 EQ——全是&lt;strong&gt;三角函数 + 傅里叶变换&lt;/strong&gt;。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2D 旋转（围绕原点）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;rotate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;theta_deg&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;radians&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;theta_deg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 离散傅里叶变换（手写太慢，用 numpy）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;spectrum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fft&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 时域 → 频域&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键公式&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;欧拉公式：$e^{i\theta} = \cos\theta + i\sin\theta$&lt;/li&gt;
&lt;li&gt;离散傅里叶：$X_k = \sum_{n=0}^{N-1} x_n \cdot e^{-2\pi i kn/N}$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="场景-5机器学习--深度学习"&gt;场景 5：机器学习 / 深度学习
&lt;/h3&gt;&lt;p&gt;ML/DL 整个底层都依赖&lt;strong&gt;线性代数 + 概率 + 微积分&lt;/strong&gt;。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. 矩阵乘法：神经网络的前向传播&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;X&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;784&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 64 个样本，784 维&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;W1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;784&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;maximum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;X&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# ReLU 激活&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. 梯度下降：∂L/∂W = (∂L/∂h) · (∂h/∂W)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# PyTorch 替你算&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;784&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;loss_fn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CrossEntropyLoss&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SGD&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;dataloader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pred&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;loss_fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pred&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backward&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 反向传播（链式法则）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 梯度下降&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zero_grad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键概念&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;链式法则&lt;/strong&gt;：$\frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial x}$（autograd 的数学基础）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Softmax&lt;/strong&gt;：$\sigma(z_i) = \frac{e^{z_i}}{\sum_j e^{z_j}}$（多分类概率化）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;交叉熵&lt;/strong&gt;：$H(p, q) = -\sum_i p_i \log q_i$（分类损失）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="场景-6赠送素数判定"&gt;场景 6（赠送）：素数判定
&lt;/h3&gt;&lt;p&gt;密码学、哈希、布隆过滤器都依赖大素数：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Miller-Rabin 素性测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;is_prime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;//=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;上面 6 个场景的代码&lt;strong&gt;没有一个&lt;/strong&gt;是&amp;quot;为了学数学而学数学&amp;quot;——全都是&lt;strong&gt;生产代码&lt;/strong&gt;里会碰到的真实问题。数学不是装饰品，是&lt;strong&gt;工具&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="下一步"&gt;下一步
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;微积分体系，看 2017-09-15《高等数学知识体系》&lt;/li&gt;
&lt;li&gt;算法 / 数据结构，看 2012-08-17《常见排序算法完全指南》&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;《数学手册》高等教育出版社&lt;/li&gt;
&lt;li&gt;程序员数学入门：&lt;a class="link" href="https://math.erucireu.dev/" target="_blank" rel="noopener"
 &gt;https://math.erucireu.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wolfram MathWorld：&lt;a class="link" href="https://mathworld.wolfram.com/" target="_blank" rel="noopener"
 &gt;https://mathworld.wolfram.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>离散数学与初等数论入门：素数、对数、集合与图论精要</title><link>https://liangweidonggood.github.io/p/lisan-shuxue-yu-chudeng-shulun/</link><pubDate>Fri, 15 Jan 2016 00:00:00 +0800</pubDate><guid>https://liangweidonggood.github.io/p/lisan-shuxue-yu-chudeng-shulun/</guid><description>&lt;img src="https://liangweidonggood.github.io/p/lisan-shuxue-yu-chudeng-shulun/image/cover.jpg" alt="Featured image of post 离散数学与初等数论入门：素数、对数、集合与图论精要" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;背景&lt;/strong&gt;：程序员的数学基础课——素数判定、对数反运算、集合论、图论、代数结构、组合数学、数理逻辑。本文用 7 大离散数学分支 + 5 大数论核心 + 4 大图论应用，把&amp;quot;程序员必备数学&amp;quot;做一次系统梳理。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why 2016 年&lt;/strong&gt;：2015-2016 是国内&amp;quot;程序员数学基础&amp;quot;觉醒期——LeetCode 中文站上线、《算法导论》第 3 版翻译、《数学之美》《程序员的数学》系列书热销。本文写给&amp;quot;想补数学基础的工程师&amp;quot;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="一素数质数自然数的原子"&gt;一、素数（质数）：自然数的&amp;quot;原子&amp;quot;
&lt;/h2&gt;&lt;h3 id="11-定义"&gt;1.1 定义
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;素数（Prime）&lt;/strong&gt;：在大于 1 的自然数中，除了 1 和该数自身外，&lt;strong&gt;无法被其他自然数整除&lt;/strong&gt;的数；否则称为合数（Composite）。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="12-素数的-5-个性质"&gt;1.2 素数的 5 个性质
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;性质&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;唯一性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;1 既不是素数也不是合数（特例）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;2 是唯一偶素数&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;其他素数都是奇数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;素数无穷&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;欧几里得 2000 多年前证明：素数有无穷多个&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;素数定理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;π(x) ~ x / ln(x)（x 越小越准，100 内有 25 个，1000 内有 168 个）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;算术基本定理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;任何大于 1 的整数都能唯一分解为素数乘积（如 12 = 2² × 3）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="13-程序员最常用的素数判定"&gt;1.3 程序员最常用的素数判定
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;is_prime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;素数判定：试除法 O(√n)&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 只需检查到 √n&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;isqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;97&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;997&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;is_prime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;97&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;997&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;性能优化&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;6k±1 优化：所有 &amp;gt;3 的素数都形如 6k+1 或 6k-1（因为 6k+0/2/3/4 必被 2/3 整除）&lt;/li&gt;
&lt;li&gt;Miller-Rabin：O(k log³n) 概率算法，大数判定（&amp;gt;10^18）首选&lt;/li&gt;
&lt;li&gt;AKS：O(log^6 n) 确定算法，2002 年发现，理论突破但实际慢&lt;/li&gt;
&lt;/ul&gt;

 &lt;/blockquote&gt;
&lt;h3 id="14-素数在程序员世界的应用"&gt;1.4 素数在程序员世界的应用
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;应用&lt;/th&gt;
					&lt;th&gt;原理&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;RSA 加密&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;大素数乘积难分解（密码学基石）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;哈希表大小&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;素数大小让哈希分布更均匀（避免聚集）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;布隆过滤器&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;多哈希函数选素数种子&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;一致性哈希&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;2^N 环设计避免素数依赖，但部分实现用素数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;雪花 ID&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;基于时间戳 + 序列号（与素数无关，但雪花的&amp;quot;位运算分配&amp;quot;思想类似）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="二对数指数的反函数"&gt;二、对数：指数的&amp;quot;反函数&amp;quot;
&lt;/h2&gt;&lt;h3 id="21-定义"&gt;2.1 定义
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;对数（Logarithm）&lt;/strong&gt;：是对&lt;strong&gt;求幂&lt;/strong&gt;的逆运算，正如除法是乘法的逆运算。
如果 a^x = N（a &amp;gt; 0，且 a ≠ 1），那么数 x 叫做&lt;strong&gt;以 a 为底 N 的对数&lt;/strong&gt;，记作 x = log_a(N)。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;名称&lt;/th&gt;
					&lt;th&gt;a（底数）&lt;/th&gt;
					&lt;th&gt;N（真数）&lt;/th&gt;
					&lt;th&gt;x（对数）&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;常用对数&lt;/td&gt;
					&lt;td&gt;10&lt;/td&gt;
					&lt;td&gt;100&lt;/td&gt;
					&lt;td&gt;2（因为 10² = 100）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;自然对数&lt;/td&gt;
					&lt;td&gt;e ≈ 2.718&lt;/td&gt;
					&lt;td&gt;7.389&lt;/td&gt;
					&lt;td&gt;2（因为 e² ≈ 7.389）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;二进制对数&lt;/td&gt;
					&lt;td&gt;2&lt;/td&gt;
					&lt;td&gt;8&lt;/td&gt;
					&lt;td&gt;3（因为 2³ = 8）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="22-程序员最常用的-3-个对数"&gt;2.2 程序员最常用的 3 个对数
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 自然对数（ln）：e 为底&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;7.389&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 2.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 常用对数（lg）：10 为底&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log10&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 2.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 二进制对数（lb）：2 为底（算法复杂度分析最常用！）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 10.0（二分 10 次找到 1024 内的数）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="23-对数在算法分析中的-5-大应用"&gt;2.3 对数在算法分析中的 5 大应用
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;应用&lt;/th&gt;
					&lt;th&gt;例子&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;二分查找&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;O(log n)：100 万数据最多 20 次比较（log₂ 10⁶ ≈ 20）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;二叉树高度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;n 个节点的平衡二叉树高度 = ⌈log₂ n⌉&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;堆/优先队列&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;插入/删除 O(log n)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;B+ 树索引&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;数据库索引查找 O(log n)（n 是记录数）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;归并排序&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;递归深度 O(log n)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="24-4-条核心对数运算法则"&gt;2.4 4 条核心对数运算法则
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;换底公式：log_a(b) = log_c(b) / log_c(a)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;对数幂：log(a^n) = n · log(a)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;对数乘积：log(a·b) = log(a) + log(b)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;对数商：log(a/b) = log(a) - log(b)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="三离散数学-7-大分支"&gt;三、离散数学 7 大分支
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;离散数学&lt;/strong&gt;（Discrete mathematics）是研究&lt;strong&gt;离散量&lt;/strong&gt;的结构及其相互关系的数学学科，是现代数学的一个重要分支。&lt;strong&gt;离散的含义是指不同的连接在一起的元素&lt;/strong&gt;，主要是研究基于离散量的结构和相互间的关系。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;它的对象一般是&lt;strong&gt;有限个或可数个元素&lt;/strong&gt;（连续数学研究的是实数区间这样的连续量）。&lt;/p&gt;
&lt;h3 id="31-离散数学在-cs-课程中的位置"&gt;3.1 离散数学在 CS 课程中的位置
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;程序设计语言
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;数据结构
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;操作系统
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;编译技术
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;人工智能
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;数据库
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;算法设计与分析
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;理论计算机科学基础
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;↑
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;都依赖 离散数学
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="32-7-大分支速览"&gt;3.2 7 大分支速览
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;分支&lt;/th&gt;
					&lt;th&gt;核心内容&lt;/th&gt;
					&lt;th&gt;程序员应用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;集合论&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;集合运算、二元关系、函数、自然数集、基数&lt;/td&gt;
					&lt;td&gt;SQL JOIN、Map/Set 数据结构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;图论&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;图、欧拉/哈密顿图、树、矩阵、平面图、图着色&lt;/td&gt;
					&lt;td&gt;网络拓扑、依赖分析、社交网络&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;代数结构&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;半群、独异点、群、环、域、格、布尔代数&lt;/td&gt;
					&lt;td&gt;密码学、自动机理论&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;组合数学&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;组合存在性、计数公式、组合定理&lt;/td&gt;
					&lt;td&gt;算法复杂度、概率分析&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;数理逻辑&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;命题逻辑、一阶谓词演算、消解原理&lt;/td&gt;
					&lt;td&gt;形式化验证、AI 推理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;数论&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;素数、同余、模运算、欧拉函数&lt;/td&gt;
					&lt;td&gt;RSA 加密、哈希、雪花 ID&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;计算模型&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;自动机、图灵机、可计算性&lt;/td&gt;
					&lt;td&gt;编译原理、算法理论&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="四集合论set-theory"&gt;四、集合论（Set Theory）
&lt;/h2&gt;&lt;h3 id="41-5-大核心概念"&gt;4.1 5 大核心概念
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;概念&lt;/th&gt;
					&lt;th&gt;符号&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;集合&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;{a, b, c}&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;元素的&lt;strong&gt;无序&lt;/strong&gt;整体&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;子集&lt;/td&gt;
					&lt;td&gt;A ⊆ B&lt;/td&gt;
					&lt;td&gt;A 的所有元素都在 B 中&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;并集&lt;/td&gt;
					&lt;td&gt;A ∪ B&lt;/td&gt;
					&lt;td&gt;属于 A 或 B 的所有元素&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;交集&lt;/td&gt;
					&lt;td&gt;A ∩ B&lt;/td&gt;
					&lt;td&gt;同时属于 A 和 B 的元素&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;差集&lt;/td&gt;
					&lt;td&gt;A - B&lt;/td&gt;
					&lt;td&gt;属于 A 但不属于 B 的元素&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="42-程序员对应实现"&gt;4.2 程序员对应实现
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Java&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Set&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;HashSet&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Arrays&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asList&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;3&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Set&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;HashSet&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Arrays&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asList&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;5&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 并集&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Set&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;union&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;HashSet&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;union&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// [1, 2, 3, 4, 5]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 交集&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Set&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;intersection&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;HashSet&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;intersection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;retainAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// [3]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 差集&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Set&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;difference&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;HashSet&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;difference&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;removeAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// [1, 2]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;-- SQL：集合的并集（UNION）、交集（INTERSECT）、差集（EXCEPT）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_a&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;UNION&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_a&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;INTERSECT&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_a&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;EXCEPT&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table_b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="43-集合论-3-大基础"&gt;4.3 集合论 3 大基础
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;主题&lt;/th&gt;
					&lt;th&gt;核心内容&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;集合及其运算&lt;/td&gt;
					&lt;td&gt;并、交、差、补、笛卡尔积&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;二元关系与函数&lt;/td&gt;
					&lt;td&gt;关系的性质（自反/对称/传递）、函数（单射/满射/双射）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;自然数与自然数集&lt;/td&gt;
					&lt;td&gt;皮亚诺公理、归纳法、超限归纳&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="五图论graph-theory"&gt;五、图论（Graph Theory）
&lt;/h2&gt;&lt;h3 id="51-6-大基本概念"&gt;5.1 6 大基本概念
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;概念&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;图的基本概念&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;顶点（V）、边（E）、邻接、度、路径&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;欧拉图&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;经过每条边恰好一次的回路（七桥问题）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;哈密顿图&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;经过每个顶点恰好一次的回路（旅行商问题）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;树&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;无环连通图，n 个顶点有 n-1 条边&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;图的矩阵表示&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;邻接矩阵、关联矩阵、距离矩阵&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;平面图&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;可画在平面上边不相交（欧拉公式 V-E+F=2）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="52-5-类图着色问题"&gt;5.2 5 类图着色问题
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;支配集：选出最少的顶点&amp;#34;监视&amp;#34;所有顶点
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;覆盖集：选出最少的边&amp;#34;覆盖&amp;#34;所有顶点
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;独立集：选出最多的顶点两两不相邻
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;匹配：选出最多的边两两不共享顶点
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;带权图：边上加权（最短路径、最小生成树）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="53-程序员最常用的-5-个图算法"&gt;5.3 程序员最常用的 5 个图算法
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;算法&lt;/th&gt;
					&lt;th&gt;应用&lt;/th&gt;
					&lt;th&gt;复杂度&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Dijkstra&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;最短路径（Google 地图）&lt;/td&gt;
					&lt;td&gt;O(V²) 或 O((V+E)logV)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Floyd-Warshall&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;全对最短路径&lt;/td&gt;
					&lt;td&gt;O(V³)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;A&lt;/strong&gt;*&lt;/td&gt;
					&lt;td&gt;启发式搜索（游戏寻路）&lt;/td&gt;
					&lt;td&gt;取决于启发函数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;BFS/DFS&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;拓扑排序、连通分量&lt;/td&gt;
					&lt;td&gt;O(V+E)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Kruskal/Prim&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;最小生成树（网络布线）&lt;/td&gt;
					&lt;td&gt;O(E log E)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="54-图在程序员世界的-7-大应用"&gt;5.4 图在程序员世界的 7 大应用
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;应用&lt;/th&gt;
					&lt;th&gt;图模型&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;社交网络&lt;/td&gt;
					&lt;td&gt;用户=顶点，好友=边&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;互联网路由&lt;/td&gt;
					&lt;td&gt;路由器=顶点，链路=边&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;编译依赖&lt;/td&gt;
					&lt;td&gt;模块=顶点，import=边&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据库 JOIN&lt;/td&gt;
					&lt;td&gt;表=顶点，关联=边&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;知识图谱&lt;/td&gt;
					&lt;td&gt;实体=顶点，关系=边&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;任务调度&lt;/td&gt;
					&lt;td&gt;任务=顶点，依赖=边&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;推荐系统&lt;/td&gt;
					&lt;td&gt;用户-商品 二分图&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="六代数结构"&gt;六、代数结构
&lt;/h2&gt;&lt;h3 id="61-5-大基本结构"&gt;6.1 5 大基本结构
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;结构&lt;/th&gt;
					&lt;th&gt;性质&lt;/th&gt;
					&lt;th&gt;例子&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;半群&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;封闭 + 结合&lt;/td&gt;
					&lt;td&gt;正整数加法、字符串拼接&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;独异点（幺半群）&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;半群 + 单位元&lt;/td&gt;
					&lt;td&gt;整数加法（0 是单位元）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;群&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;独异点 + 逆元&lt;/td&gt;
					&lt;td&gt;整数加法、置换群&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;环&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;加法群 + 乘法半群&lt;/td&gt;
					&lt;td&gt;整数环、多项式环&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;域&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;环 + 乘法逆元&lt;/td&gt;
					&lt;td&gt;有理数域、有限域 GF(2ⁿ)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="62-4-个衍生结构"&gt;6.2 4 个衍生结构
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;结构&lt;/th&gt;
					&lt;th&gt;性质&lt;/th&gt;
					&lt;th&gt;例子&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;格&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;两个运算满足吸收律、结合律、交换律&lt;/td&gt;
					&lt;td&gt;幂集（按包含序）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;布尔代数&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;有补格&lt;/td&gt;
					&lt;td&gt;开关电路、SQL 谓词&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;代数系统&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;集合 + 运算 + 关系&lt;/td&gt;
					&lt;td&gt;自然数、整数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;半群/独异点/群/环/域/格&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;一层层严格&lt;/td&gt;
					&lt;td&gt;抽象代数主线&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="63-程序员最常用有限域-gf2"&gt;6.3 程序员最常用：有限域 GF(2⁸)
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# AES 加密用 GF(2^8) 域&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;gf_mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;GF(2^8) 上的多项式乘法（不可约多项式 x^8 + x^4 + x^3 + x + 1 = 0x11B）&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;hi_bit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0x80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;hi_bit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="mh"&gt;0x1B&lt;/span&gt; &lt;span class="c1"&gt;# 不可约多项式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;hex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gf_mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x57&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x83&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt; &lt;span class="c1"&gt;# AES 中的核心运算&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="七组合数学"&gt;七、组合数学
&lt;/h2&gt;&lt;h3 id="71-4-大计数公式"&gt;7.1 4 大计数公式
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;公式&lt;/th&gt;
					&lt;th&gt;表达式&lt;/th&gt;
					&lt;th&gt;适用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;排列 P&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;P(n, k) = n! / (n-k)!&lt;/td&gt;
					&lt;td&gt;顺序敏感&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;组合 C&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;C(n, k) = n! / (k!(n-k)!)&lt;/td&gt;
					&lt;td&gt;顺序无关&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;重复组合&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;C(n+k-1, k)&lt;/td&gt;
					&lt;td&gt;允许重复&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;错排&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;D(n) = n!(1 - 1/1! + 1/2! - 1/3! + &amp;hellip;)&lt;/td&gt;
					&lt;td&gt;都不在原位&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="72-5-大计数定理"&gt;7.2 5 大计数定理
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;定理&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;鸽巢原理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;n+1 个物体放 n 个抽屉，至少 1 个抽屉有 2 个&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;二项式定理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;(a+b)ⁿ = Σ C(n,k) aⁿ⁻ᵏ bᵏ&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;容斥原理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;|A∪B∪C| = Σ|Aᵢ| - Σ|Aᵢ∩Aⱼ| + |A∩B∩C|&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;生成函数&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;用多项式系数表示组合数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;递推关系&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;斐波那契 f(n) = f(n-1) + f(n-2)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="73-程序员应用"&gt;7.3 程序员应用
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 二项式系数：Pascal 三角形&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;binomial_coefficient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;binomial_coefficient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;binomial_coefficient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 错排：5 个人各写 1 张贺卡，都不寄给自己&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;derangement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;derangement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;derangement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;derangement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 44&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="八数理逻辑"&gt;八、数理逻辑
&lt;/h2&gt;&lt;h3 id="81-3-大核心"&gt;8.1 3 大核心
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;主题&lt;/th&gt;
					&lt;th&gt;核心内容&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;命题逻辑&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;命题、联结词（∧ ∨ ¬ → ↔）、真值表、永真式&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;一阶谓词演算&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;量词（∀ ∃）、谓词、函数、推理规则&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;消解原理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Robinson 1965，机器定理证明的通用算法&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="82-5-大经典推理规则"&gt;8.2 5 大经典推理规则
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;名称&lt;/th&gt;
					&lt;th&gt;形式&lt;/th&gt;
					&lt;th&gt;例子&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;假言推理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;(P→Q, P) ⊢ Q&lt;/td&gt;
					&lt;td&gt;如果下雨，地会湿；下雨了；所以地湿了&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;拒取式&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;(P→Q, ¬Q) ⊢ ¬P&lt;/td&gt;
					&lt;td&gt;如果下雨，地会湿；地没湿；所以没下雨&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;假言三段论&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;(P→Q, Q→R) ⊢ P→R&lt;/td&gt;
					&lt;td&gt;下雨→地湿；地湿→滑；所以下雨→滑&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;析取三段论&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;(P∨Q, ¬P) ⊢ Q&lt;/td&gt;
					&lt;td&gt;买可乐或雪碧；不买可乐；所以买雪碧&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;全称实例化&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;∀x P(x) ⊢ P(a)&lt;/td&gt;
					&lt;td&gt;所有动物会死；苏格拉底是动物；所以苏格拉底会死&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="83-程序员应用sql-谓词逻辑"&gt;8.3 程序员应用：SQL 谓词逻辑
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;-- 谓词演算 → SQL WHERE
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;-- ∀x (学生(x) → 选课(x))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;student&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;EXISTS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;course_selection&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;student_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;-- ∃x (学生(x) ∧ 成绩(x) &amp;gt;= 90)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;student&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;JOIN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;score&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;student_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;score&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="九5-个数学基础速查表"&gt;九、5 个数学基础速查表
&lt;/h2&gt;&lt;h3 id="91-自然数对数表"&gt;9.1 自然数对数表
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;n&lt;/th&gt;
					&lt;th&gt;log₂ n&lt;/th&gt;
					&lt;th&gt;log₁₀ n&lt;/th&gt;
					&lt;th&gt;ln n&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;10&lt;/td&gt;
					&lt;td&gt;3.32&lt;/td&gt;
					&lt;td&gt;1.00&lt;/td&gt;
					&lt;td&gt;2.30&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;100&lt;/td&gt;
					&lt;td&gt;6.64&lt;/td&gt;
					&lt;td&gt;2.00&lt;/td&gt;
					&lt;td&gt;4.61&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;1000&lt;/td&gt;
					&lt;td&gt;9.97&lt;/td&gt;
					&lt;td&gt;3.00&lt;/td&gt;
					&lt;td&gt;6.91&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;10⁶&lt;/td&gt;
					&lt;td&gt;19.93&lt;/td&gt;
					&lt;td&gt;6.00&lt;/td&gt;
					&lt;td&gt;13.82&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;10⁹&lt;/td&gt;
					&lt;td&gt;29.90&lt;/td&gt;
					&lt;td&gt;9.00&lt;/td&gt;
					&lt;td&gt;20.72&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="92-常用数学符号"&gt;9.2 常用数学符号
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;符号&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
					&lt;th&gt;例子&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;∈&lt;/td&gt;
					&lt;td&gt;属于&lt;/td&gt;
					&lt;td&gt;3 ∈ {1, 2, 3}&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;⊆&lt;/td&gt;
					&lt;td&gt;子集&lt;/td&gt;
					&lt;td&gt;{1,2} ⊆ {1,2,3}&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;∪ ∩&lt;/td&gt;
					&lt;td&gt;并集 交集&lt;/td&gt;
					&lt;td&gt;A ∪ B, A ∩ B&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;∀ ∃&lt;/td&gt;
					&lt;td&gt;全称 存在&lt;/td&gt;
					&lt;td&gt;∀x P(x), ∃x P(x)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;→ ↔&lt;/td&gt;
					&lt;td&gt;蕴含 等价&lt;/td&gt;
					&lt;td&gt;P→Q, P↔Q&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;∧ ∨ ¬&lt;/td&gt;
					&lt;td&gt;与 或 非&lt;/td&gt;
					&lt;td&gt;P∧Q, P∨Q, ¬P&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Σ Π&lt;/td&gt;
					&lt;td&gt;求和 求积&lt;/td&gt;
					&lt;td&gt;Σᵢ₌₁ⁿ i = n(n+1)/2&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;∫ ∂ ∇&lt;/td&gt;
					&lt;td&gt;积分 偏导 梯度&lt;/td&gt;
					&lt;td&gt;（连续数学）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="93-初等代数恒等式"&gt;9.3 初等代数恒等式
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;完全平方：(a±b)² = a² ± 2ab + b²
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;立方和：a³ + b³ = (a+b)(a² - ab + b²)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;立方差：a³ - b³ = (a-b)(a² + ab + b²)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;二次方程求根：x = (-b ± √(b² - 4ac)) / 2a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="94-几何基础"&gt;9.4 几何基础
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;图形&lt;/th&gt;
					&lt;th&gt;面积&lt;/th&gt;
					&lt;th&gt;周长&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;圆&lt;/td&gt;
					&lt;td&gt;πr²&lt;/td&gt;
					&lt;td&gt;2πr&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;矩形&lt;/td&gt;
					&lt;td&gt;a·b&lt;/td&gt;
					&lt;td&gt;2(a+b)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;三角形&lt;/td&gt;
					&lt;td&gt;√(s(s-a)(s-b)(s-c))&lt;/td&gt;
					&lt;td&gt;a+b+c&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;球&lt;/td&gt;
					&lt;td&gt;4πr²&lt;/td&gt;
					&lt;td&gt;-&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;立方体&lt;/td&gt;
					&lt;td&gt;6a²&lt;/td&gt;
					&lt;td&gt;12a&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="95-概率统计速查"&gt;9.5 概率统计速查
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;公式&lt;/th&gt;
					&lt;th&gt;表达式&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;加法&lt;/td&gt;
					&lt;td&gt;P(A∪B) = P(A) + P(B) - P(A∩B)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;乘法&lt;/td&gt;
					&lt;td&gt;P(A∩B) = P(A)·P(B|A)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;全概率&lt;/td&gt;
					&lt;td&gt;P(B) = Σ P(B|Aᵢ)·P(Aᵢ)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;贝叶斯&lt;/td&gt;
					&lt;td&gt;P(A|B) = P(B|A)·P(A) / P(B)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;期望&lt;/td&gt;
					&lt;td&gt;E[X] = Σ x·P(x)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;方差&lt;/td&gt;
					&lt;td&gt;Var(X) = E[X²] - (E[X])²&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="十4-大推荐教材"&gt;十、4 大推荐教材
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;教材&lt;/th&gt;
					&lt;th&gt;适用&lt;/th&gt;
					&lt;th&gt;难度&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;《程序员的数学》（结城浩）&lt;/td&gt;
					&lt;td&gt;入门&lt;/td&gt;
					&lt;td&gt;★★&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;《数学之美》（吴军）&lt;/td&gt;
					&lt;td&gt;应用视角&lt;/td&gt;
					&lt;td&gt;★★&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;《算法导论》（CLRS）&lt;/td&gt;
					&lt;td&gt;算法+数学&lt;/td&gt;
					&lt;td&gt;★★★★&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;《离散数学及其应用》（Rosen）&lt;/td&gt;
					&lt;td&gt;系统学习&lt;/td&gt;
					&lt;td&gt;★★★&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="十一参考与延伸"&gt;十一、参考与延伸
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prime Pages（素数数据库）&lt;/strong&gt;：&lt;a class="link" href="https://primes.utm.edu/" target="_blank" rel="noopener"
 &gt;https://primes.utm.edu/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wolfram MathWorld&lt;/strong&gt;：&lt;a class="link" href="https://mathworld.wolfram.com/" target="_blank" rel="noopener"
 &gt;https://mathworld.wolfram.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图论算法可视化&lt;/strong&gt;：&lt;a class="link" href="https://visualgo.net/zh" target="_blank" rel="noopener"
 &gt;https://visualgo.net/zh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MIT 6.042J 离散数学（OCW）&lt;/strong&gt;：&lt;a class="link" href="https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/" target="_blank" rel="noopener"
 &gt;https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;陶哲轩《实分析》&lt;/strong&gt;：&lt;a class="link" href="https://terrytao.wordpress.com/books/" target="_blank" rel="noopener"
 &gt;https://terrytao.wordpress.com/books/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;下一步&lt;/strong&gt;：先把《程序员的数学》通读一遍（2-3 周），再选《算法导论》部分章节深入；接下来在 LeetCode 上&lt;strong&gt;有意识地用数学思维&lt;/strong&gt;（如用对数法分析时间复杂度、用素数优化哈希）。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="十二2024-视角8-年后程序员的数学基础变了吗"&gt;十二、2024+ 视角：8 年后，程序员的数学基础变了吗？
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;本文写于 2016 年 1 月。&lt;strong&gt;8 年后（2024-2026）回望，7 大离散数学分支 + 5 大数论核心 + 4 大图论应用——这套&amp;quot;老菜单&amp;quot;依然有效&lt;/strong&gt;，但每道菜都多了一层&amp;quot;AI 时代&amp;quot;的浇头。下面逐条对照。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="121-素数8-年后的新角色"&gt;12.1 素数：8 年后的新角色
&lt;/h3&gt;&lt;p&gt;2016 年我写&amp;quot;素数 = RSA + 哈希表&amp;quot;。&lt;strong&gt;2024-2026 素数的新角色&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;后量子密码学（Post-Quantum Cryptography, PQC）&lt;/strong&gt;——2024-08 NIST 正式发布 PQC 标准
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ML-KEM&lt;/strong&gt;（原 Kyber，格密码 / Lattice-based）——核心仍依赖&lt;strong&gt;有限域运算 + 素数&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ML-DSA&lt;/strong&gt;（原 Dilithium）——签名算法，基于&lt;strong&gt;模运算 + 拒绝采样&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SLH-DSA&lt;/strong&gt;（原 SPHINCS+）——哈希签名，&lt;strong&gt;只依赖哈希函数（无素数）&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;国密算法 SM2/SM3/SM4&lt;/strong&gt;——等保 2.0 三级强制要求，&lt;strong&gt;SM2 基于 256 位素数域椭圆曲线&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;零知识证明（ZKP）&lt;/strong&gt;——zk-SNARK、zk-STARK 在区块链 + 隐私计算中爆发，&lt;strong&gt;核心数学是素数域 + 多项式承诺&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RSA 仍在用&lt;/strong&gt;——2024-2026 仍是 80% HTTPS 站点的主流算法，&lt;strong&gt;2048 位 / 4096 位 RSA 是事实标准&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;关键变化&lt;/strong&gt;：素数从&amp;quot;经典密码学&amp;quot;扩展到&amp;quot;后量子密码 + 零知识证明 + 国产化合规&amp;quot;——&lt;strong&gt;8 年后素数仍是程序员必须懂的&amp;quot;硬数学&amp;quot;&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="122-对数llm-时代的新复杂度"&gt;12.2 对数：LLM 时代的新复杂度
&lt;/h3&gt;&lt;p&gt;2016 年我写&amp;quot;对数 = &lt;code&gt;O(log n)&lt;/code&gt; 时间复杂度&amp;quot;。&lt;strong&gt;2024-2026 对数有了新战场&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Transformer 复杂度&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;标准 Attention：&lt;code&gt;O(n²)&lt;/code&gt;（n 是序列长度）——128K 上下文就是 163 亿次运算&lt;/li&gt;
&lt;li&gt;FlashAttention：&lt;code&gt;O(n log n)&lt;/code&gt; 显存、实际计算仍是 &lt;code&gt;O(n²)&lt;/code&gt;——&lt;strong&gt;2022-2024 主流优化&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Linear Attention（Performer / Mamba）：&lt;code&gt;O(n)&lt;/code&gt;——&lt;strong&gt;2024-2026 正在突破的方向&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Token 经济学&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;LLM 推理时 KV Cache 占显存 &lt;code&gt;O(n²)&lt;/code&gt;——&lt;strong&gt;各种压缩方案都在用对数技巧&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;上下文长度 1M（Llama 4 2025 目标）需要 &lt;strong&gt;Sub-quadratic 算法&lt;/strong&gt;——对数是关键&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间复杂度面试新题&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;2024 面试题：&amp;ldquo;为什么 Attention 是 &lt;code&gt;O(n²)&lt;/code&gt;？&amp;rdquo;&lt;/li&gt;
&lt;li&gt;2024 面试题：&amp;ldquo;如何把 Attention 优化到 &lt;code&gt;O(n log n)&lt;/code&gt;？&amp;rdquo;&lt;/li&gt;
&lt;li&gt;2024 面试题：&amp;ldquo;KV Cache 怎么压缩？&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;关键变化&lt;/strong&gt;：对数从&amp;quot;二分查找&amp;quot;扩展到&amp;quot;LLM 复杂度分析&amp;quot;——&lt;strong&gt;8 年后对数仍是计算机科学的&amp;quot;复杂度语言&amp;quot;&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="123-集合论--图论rag-与知识图谱的基础"&gt;12.3 集合论 / 图论：RAG 与知识图谱的基础
&lt;/h3&gt;&lt;p&gt;2016 年我写&amp;quot;集合论 = SQL 基础&amp;quot;。&lt;strong&gt;2024-2026 集合论 / 图论的新角色&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;RAG（检索增强生成）&lt;/strong&gt;——本质是&lt;strong&gt;集合论 + 向量空间&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;文档 → Embedding → 集合 Top-K 查询&lt;/li&gt;
&lt;li&gt;关系代数（&lt;code&gt;UNION / INTERSECT / JOIN&lt;/code&gt;）在 RAG pipeline 里反复出现&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识图谱&lt;/strong&gt;——图论 + Embedding：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Microsoft GraphRAG&lt;/strong&gt;（2024 发布）——基于 LLM 抽取实体关系，建图&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Neo4j 5.x + LangChain&lt;/strong&gt;——2024-2026 知识图谱 + LLM 主流方案&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实体关系（Entity-Relation）&lt;/strong&gt; = 图论里的&amp;quot;边&amp;quot;+&amp;ldquo;顶点&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图神经网络（GNN）&lt;/strong&gt;——图论 + 深度学习：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;药物发现&lt;/strong&gt;（分子结构 = 图）——2024-2026 大爆发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推荐系统&lt;/strong&gt;（用户-商品二分图）——几乎所有大厂都在用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;社交网络分析&lt;/strong&gt;——Facebook / 微信的&amp;quot;朋友推荐&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据库 JOIN 优化&lt;/strong&gt;——图论 + 关系代数的&lt;strong&gt;回旋镖&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;2024-2026 图数据库（Neo4j / TigerGraph / NebulaGraph）爆发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL + Graph Hybrid&lt;/strong&gt; 成为新趋势&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;关键变化&lt;/strong&gt;：集合论 / 图论从&amp;quot;数据库基础&amp;quot;扩展到&amp;quot;RAG + 知识图谱 + GNN&amp;quot;——&lt;strong&gt;8 年后图论成为 AI 时代&amp;quot;数据建模&amp;quot;的核心语言&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="124-代数结构--数理逻辑形式化验证与-ai-推理"&gt;12.4 代数结构 / 数理逻辑：形式化验证与 AI 推理
&lt;/h3&gt;&lt;p&gt;2016 年我写&amp;quot;代数结构 = 密码学&amp;quot;。&lt;strong&gt;2024-2026 新角色&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;形式化验证（Formal Verification）&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lean 4 + Mathlib&lt;/strong&gt;（2024-2026 爆发）——用数理逻辑证明数学定理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coq / Isabelle / TLA+&lt;/strong&gt;——形式化验证工业软件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AWS 用 TLA+ 验证 S3 正确性&lt;/strong&gt;——经典案例&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI 自动定理证明&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DeepMind AlphaProof&lt;/strong&gt;（2024-07，IMO 银牌）——AI 解数学题&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenAI o1/o3 系列&lt;/strong&gt;——Chain-of-Thought 推理的工业化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lean Copilot&lt;/strong&gt;（2024）——AI + Lean 4 证明助手&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;约束求解（SMT Solver）&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Z3&lt;/strong&gt;——程序分析、编译器优化、形式化验证的核心&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SMT-LIB&lt;/strong&gt;——形式化逻辑标准语言&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;格密码（Lattice-based Cryptography）&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LWE / RLWE&lt;/strong&gt; 问题——后量子密码学基础&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;格理论（Lattice Theory）&lt;/strong&gt; = 离散数学的&amp;quot;现代分支&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;关键变化&lt;/strong&gt;：代数结构 / 数理逻辑从&amp;quot;教科书理论&amp;quot;走向&amp;quot;AI 推理 + 形式化验证&amp;quot;——&lt;strong&gt;8 年后数理逻辑成为 AI 推理的&amp;quot;形式化底层&amp;quot;&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="125-组合数学算法竞赛--ai-推理"&gt;12.5 组合数学：算法竞赛 → AI 推理
&lt;/h3&gt;&lt;p&gt;2016 年组合数学主要用于&amp;quot;算法竞赛 + 概率分析&amp;quot;。&lt;strong&gt;2024-2026 新场景&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;AI 推理的组合优化&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chain-of-Thought&lt;/strong&gt; 路径搜索 = &lt;strong&gt;图搜索 + 组合&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tree-of-Thoughts / Graph-of-Thoughts&lt;/strong&gt;（2023-2024）= 显式的组合搜索&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;密码学协议&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;安全多方计算（MPC）&lt;/strong&gt;——基于秘密分享 + 组合数学&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;同态加密&lt;/strong&gt;——基于格 + 模运算 + 组合优化&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生成式 AI&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;采样算法&lt;/strong&gt;（MCMC / 拒绝采样 / 重要性采样）= 组合数学 + 概率&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;关键变化&lt;/strong&gt;：组合数学从&amp;quot;竞赛技巧&amp;quot;扩展到&amp;quot;AI 推理路径搜索&amp;quot;——&lt;strong&gt;8 年后组合数学成为 AI 系统设计的&amp;quot;组合优化&amp;quot;工具&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="126-计算模型图灵机--神经网络的可计算性"&gt;12.6 计算模型：图灵机 → 神经网络的&amp;quot;可计算性&amp;quot;
&lt;/h3&gt;&lt;p&gt;2016 年我说&amp;quot;图灵机 = 理论 CS 的基础&amp;quot;。&lt;strong&gt;2024-2026 新思考&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;大语言模型能&amp;quot;计算&amp;quot;吗？&lt;/strong&gt;——这是个 2023-2026 仍在争论的哲学问题&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transformer 是图灵完备的&lt;/strong&gt;（已被严格证明）——但它的&amp;quot;计算范式&amp;quot;和图灵机完全不同&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;神经图灵机 / 神经 RAM&lt;/strong&gt;（2024-2026 探索中）——结合神经网络 + 外部记忆&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可解释性 / 形式化推理&lt;/strong&gt;——2024-2026 在&amp;quot;AI 可解释&amp;quot;领域，&lt;strong&gt;数理逻辑 + 计算模型&lt;/strong&gt;仍是基础&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;关键变化&lt;/strong&gt;：计算模型从&amp;quot;理论 CS 课程&amp;quot;扩展到&amp;quot;AI 系统的可计算性 / 可解释性&amp;quot;——&lt;strong&gt;8 年后计算模型成为 AI 系统的&amp;quot;理论根基&amp;quot;&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="127-8-年对照表"&gt;12.7 8 年对照表
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;分支&lt;/th&gt;
					&lt;th&gt;2016 应用&lt;/th&gt;
					&lt;th&gt;2024-2026 应用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;素数&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;RSA / 哈希&lt;/td&gt;
					&lt;td&gt;后量子密码 / SM 国密 / ZKP&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;对数&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;O(log n)&lt;/code&gt; / 二分查找&lt;/td&gt;
					&lt;td&gt;LLM 复杂度 / Token 经济学 / KV Cache&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;集合论&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;SQL / 关系代数&lt;/td&gt;
					&lt;td&gt;RAG / Embedding 集合 / 向量库&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;图论&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;网络拓扑 / 依赖分析&lt;/td&gt;
					&lt;td&gt;知识图谱 / GNN / 图数据库&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;代数结构&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;密码学 / 有限域&lt;/td&gt;
					&lt;td&gt;格密码 / 同态加密 / MPC&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;数理逻辑&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;谓词逻辑 / Prolog&lt;/td&gt;
					&lt;td&gt;形式化验证 / Lean 4 / AI 推理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;组合数学&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;算法竞赛 / 概率&lt;/td&gt;
					&lt;td&gt;AI 推理路径搜索 / MCMC&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;计算模型&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;图灵机 / 自动机&lt;/td&gt;
					&lt;td&gt;Transformer 可计算性 / AI 解释&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="128-8-年升级版书单"&gt;12.8 8 年升级版书单
&lt;/h3&gt;&lt;p&gt;2016 年我推荐 4 本书。&lt;strong&gt;2024 年我会加 3 本&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;教材&lt;/th&gt;
					&lt;th&gt;主题&lt;/th&gt;
					&lt;th&gt;2024 价值&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;《Mathematics for Machine Learning》&lt;/strong&gt;（MML Book）&lt;/td&gt;
					&lt;td&gt;线性代数 + 概率 + 优化&lt;/td&gt;
					&lt;td&gt;入门 ML 必备数学&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;《Information Theory, Inference, and Learning Algorithms》&lt;/strong&gt;（David MacKay）&lt;/td&gt;
					&lt;td&gt;信息论 + 编码 + 推理&lt;/td&gt;
					&lt;td&gt;理解 LLM 原理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;《Computational Complexity: A Modern Approach》&lt;/strong&gt;（Arora, Barak）&lt;/td&gt;
					&lt;td&gt;计算复杂性理论&lt;/td&gt;
					&lt;td&gt;深入 AI 系统的理论极限&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;外加 3 个&lt;strong&gt;免费在线资源&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;3Blue1Brown&lt;/strong&gt;（YouTube / B 站）——线性代数 / 微积分 / 信息论可视化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MIT 18.065 Matrix Methods in Data Analysis&lt;/strong&gt;（OCW）——线性代数应用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distill.pub&lt;/strong&gt;（归档前存档）——深度学习可视化讲解&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="129-8-年前-vs-8-年后写给想补数学基础的工程师"&gt;12.9 8 年前 vs 8 年后：写给&amp;quot;想补数学基础&amp;quot;的工程师
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;2016 年的建议&lt;/strong&gt;：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;想补数学基础 → 读 Rosen 离散数学 → 读 CLRS 算法导论 → 在 LeetCode 上用数学思维&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;2024 年的升级版建议&lt;/strong&gt;：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;想补数学基础 → 读 Rosen 离散数学（&lt;strong&gt;仍是基础&lt;/strong&gt;）→ 读 MML Book 入门 ML 数学 → 读《Lean 4 定理证明导论》入门形式化 → 在 LLM 应用上用数学思维（RAG / Embedding / 知识图谱）&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;核心变化&lt;/strong&gt;：8 年后&lt;strong&gt;离散数学没变，ML 数学 + 形式化验证是新基础&lt;/strong&gt;。RAG 时代补数学，&lt;strong&gt;MML Book + 信息论 + 一点 Lean 4&lt;/strong&gt; 比单纯啃 CLRS 更实用。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="1210-写在最后"&gt;12.10 写在最后
&lt;/h3&gt;&lt;p&gt;2016 年我写&amp;quot;想补数学基础的工程师从 LeetCode 开始&amp;quot;。&lt;strong&gt;8 年后我想说&lt;/strong&gt;：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;LeetCode 仍然是好起点，但终点已经变了&lt;/strong&gt;——&lt;br&gt;
2016 年终点是&amp;quot;写出高效的算法&amp;quot;&lt;br&gt;
2024 年终点是&amp;quot;用数学理解 LLM 的能力边界&amp;quot;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;离散数学、线性代数、概率论、数理逻辑&lt;/strong&gt;——这 4 门课是 8 年不变的&amp;quot;硬基础&amp;quot;；&lt;strong&gt;信息论、计算复杂性、形式化验证&lt;/strong&gt;——这 3 门是 2024-2026 的&amp;quot;新基础&amp;quot;。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;8 年前我担心&amp;quot;被数学卡住 5 分钟&amp;quot;，&lt;br&gt;
8 年后我担心&amp;quot;被 AI 系统的数学基础卡住 5 小时&amp;quot;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;数学不会变老，&lt;strong&gt;只是换了个地方等我们回来&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="参考资料2024-补充"&gt;参考资料（2024+ 补充）
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://csrc.nist.gov/projects/post-quantum-cryptography" target="_blank" rel="noopener"
 &gt;NIST PQC 标准（FIPS 203/204/205）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/microsoft/graphrag" target="_blank" rel="noopener"
 &gt;Microsoft GraphRAG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://leanprover.github.io/" target="_blank" rel="noopener"
 &gt;Lean 4 形式化证明&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://arxiv.org/abs/2104.04322" target="_blank" rel="noopener"
 &gt;Mathematical Structures in Deep Learning（综述）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/state-spaces/mamba" target="_blank" rel="noopener"
 &gt;Mamba: Linear-Time Sequence Modeling with Selective State Spaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://mml-book.github.io/" target="_blank" rel="noopener"
 &gt;MML Book: Mathematics for Machine Learning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://deepmind.google/discover/blog/ai-solves-imo-problems-at-silver-medal-level/" target="_blank" rel="noopener"
 &gt;DeepMind AlphaProof（IMO 2024）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://arxiv.org/abs/2404.12586" target="_blank" rel="noopener"
 &gt;Lean Copilot: AI for Theorem Proving&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://arxiv.org/abs/2307.08691" target="_blank" rel="noopener"
 &gt;FlashAttention 2 论文&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>