<?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%AC%A6%E5%8F%B7/</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%AC%A6%E5%8F%B7/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></channel></rss>