# 从0理解数学基础

Author: 疑似蜜糖 (@ogre)
Published: 2026-07-28T09:19:35Z
Canonical: https://wepostx.com/topics/2

学习算法课程，需要很多数学基础知识，但是并不意味着需要先完整学习数学。

## 学习首先说人话 

首先重温下数学符号，我感觉数学符号就很像地图的图标

第一次看到地铁图时，圆点、颜色和换乘标记可能都很陌生。但地图仅仅是为了把一长段话压缩到一张图里。

数学也可以同样的思路：

字母表示“这里可以放一个数”。

固定数字表示“这条规则里暂时不变”。

等号表示“左右其实是同一个数值”。

下标表示“我要序列里的第几项”。

指数表示“同一个底数要重复乘多少次”。

对数表示“反过来寻找一共乘了多少次” 。

求和符号表示“请按范围把许多项逐个加起来”。

函数表示“一台输入一个数、输出一个数的机器”。

坐标表示“先横着走，再竖着走，找到一个位置”。

斜率表示“横着每走一步，竖着变化多少”。

## 这东西到底有什么用

我上学的时候就一直困惑数学在生活中又能什么用，导致上了大学后松懈了很多。现在反过来想想有些唏嘘

**销量预测**

企业可能说：

广告投入每增加一万元，预计销量增加两百件；即使不投广告，也有一百件自然销量。

数学符号能把这条规则压缩下来。以后只要换广告投入，就能得到对应的预测销量。

**客户分群**

一个客户会有年龄、消费金额、到店次数等许多特征。下标让我们可以明确说“第几个客户的第几个特征”，而不会把行和列弄混。

**模型损失**

训练模型时，需要把每条样本产生的错误逐项加起来。求和符号就是“遍历所有样本并累计”的压缩写法。

**相似度和向量**

后面讲推荐、文本向量和神经网络时，会把对象放进坐标空间。坐标轴、点、方向和距离都是理解向量的入口。

**趋势变化**

销量随价格如何改变、风险随负债率如何改变，都涉及“横向变化多少、纵向变化多少”。斜率就是最简单的变化率。

**增长预测与反向求时间**

假设一个指标每过一期都乘二：

```
第 0 期：1
第 1 期：2
第 2 期：4
第 3 期：8
```

“三期以后是多少”是指数方向；“从一增长到八一共过了几期”是对数方向。

企业里这两个问题经常成对出现：

- 正向：用户按固定比例增长，若干期后大约有多少人？
- 反向：要增长到目标规模，大约需要多少期？
- 正向：资金按复利积累，未来余额是多少？
- 反向：余额达到预算目标还要多久？
- 正向：异常传播按层扩散，几层后会影响多少节点？
- 反向：已知影响规模，估计传播深度。

## 不用公式，先把过程走一遍

### 变量和常量

一台饮料机。

- 你选择杯子数量，这个数量可以每次不同。
- 每杯价格暂时固定为两元。
- 包装费暂时固定为一元。
- 机器先计算杯数对应的饮料费。
- 再把包装费加上去

“杯子数量”是变量；“每杯两元”和“包装费一元”是这条规则里的常量。

常量并不表示宇宙中永远不变。它只表示在当前规则或本次计算中保持不变。

### 等号

机器算完以后，左边的计算过程和右边的最终金额是同一个数。

等号不是“按下计算按钮”，也不是“接下来发生”。它表达的是两边数值相同。

### 下标

桌上依次摆着三张卡片，卡片上的数字是二、四、六。

如果说“第二张卡片”，你从左向右数：第一张是二，第二张是四。因此答案是四。

下标就是把“第几张卡片”压缩到字母右下角。

### 幂 

“幂”通常指运算的结果

三重复乘两次”的动作是：

1. 先拿一个三。
2. 再拿一个三。
3. 把两个三相乘。

它不是三乘二。指数告诉你底数出现多少次。

**指数和对数是一对正反动作**

先从一开始，每次乘二：

```
不乘：1
乘 1 次：2
乘 2 次：4
乘 3 次：8
```
这叫指数的正向动作：输入“乘几次”，输出“最终变成多少”。

现在把问题倒过来。手里已经有八，每次除二：

```
8 ÷ 2 = 4  ← 撤销一次乘二
4 ÷ 2 = 2  ← 撤销第二次乘二
2 ÷ 2 = 1  ← 撤销第三次乘二
```

一共除三次回到一，所以以二为底，八的对数是三。

请分清三种角色：

- 底数二：每次按什么倍数变化；
- 指数三：一共重复多少次；
- 结果八：重复以后到了哪里。

**指数运算是把“三”送到“八”，同底对数运算是把“八”送回“三”。几何上就是把
点 (3,8) 交换成 (8,3)，像沿着直线 y=x 照镜子。**

连续增长不能总靠整除。例如“哪个数作为e的指数会得到二”
没有整数答案。本课代码会：

1. 把许多越来越小的项逐项加起来，近似 e的x次方 (e自然底数)
2. 先夹住答案；
3. 每次试区间中点；
4. 指数结果偏小就向右找，偏大就向左找；
5. 区间足够窄才停止。

### 根号

前面这个问题其实就涉及到了需要开方计算了

“开方”就是“指数为分数”的实际操作。

“开方”就是“指数为分数”的实际操作。

开平方  $x^2$  = 指数  $\frac{1}{2}$  （0.5次方）

开立方 $x^3$   = 指数  $\frac{1}{3}$  （约0.333次方）

开四次方 $x^4$   = 指数   （0.25次方）

### 绝对值

你站在数轴的负四位置。问你距离零点多远。

方向是“在零的左边”，距离是“四格”。距离不会是负数，因此绝对值是四。

### 求和

还是二、四、六三张卡片：

1. 钱包最初是零。
2. 读第一张卡片，把二放进钱包，现在是二。
3. 读第二张卡片，再放入四，现在是六。
4. 读第三张卡片，再放入六，现在是十二。
5. 三张都读完，停止。
这就是有限求和的真实执行过程。

### 函数

把函数想成一台规则固定的机器：

输入一个允许的数字。
1. 机器先乘二。
2. 再加一。
3. 输出一个数字。
同一个输入送进同一台机器，必须得到同一个输出。一个输入不能同时得到两个不同答案，否则它就不满足这里的函数规则。

### 坐标

坐标像在方格地图上找位置：

从原点出发。

1. 先看第一个数，决定向左还是向右走多少格。
3. 再看第二个数，决定向下还是向上走多少格。
4. 落脚位置就是这个坐标点。

顺序不能交换：第一个数管横向，第二个数管纵向。

### 斜率

从第一个点走到第二个点：

1. 先数横向走了几格。
3. 再数纵向走了几格。
4. 用纵向变化除以横向变化。
5. 得到“横向每走一格，纵向平均变化几格”。

### 定义域和值域

- 定义域是机器允许你放进去的所有输入。
- 值域是这些输入实际通过机器后得到的所有输出。

先有允许的输入，再有对应的输出。二者不能混为一谈。

## 用几个数字亲手算一次

变量、常量和等号

输入换成三：

```
先算 2 × 3 = 6
再算 6 + 1 = 7
所以 2 × 3 + 1 = 7
```

这里：

- 三是本次放进变量位置的数字。
- 二和一是本条规则里的常量。
- 等号左边算出来是七，右边也是七。

### 下标

a序列按顺序是：

```
第 1 项：2
第 2 项：4
第 3 项：6
```

所以“a 下标二”的值是四。

### 幂

```
3 的二次方
= 两个 3 相乘
= 3 × 3
= 9
```

### 指数和整数对数

先建立完整指数表：

| 指数，也就是乘二次数 | 从一开始的动作 | 结果 |
|---:|---|---:|
| 0 | 一次也不乘 | 1 |
| 1 | 1×2 | 2 |
| 2 | 1×2×2 | 4 |
| 3 | 1×2×2×2 | 8 |

因此：

```text
2 的 3 次方 = 8
```

再从八倒着整除：

| 已除次数 | 当前商 | 下一步 |
|---:|---:|---|
| 0 | 8 | 8÷2=4 |
| 1 | 4 | 4÷2=2 |
| 2 | 2 | 2÷2=1 |
| 3 | 1 | 停止 |

所以：

```text
以 2 为底，8 的对数 = 3
```

这不是两个互不相关的答案，而是同一事实的两种问法：

```text
输入次数 3 ──指数──> 输出结果 8
输入结果 8 ──对数──> 输出次数 3
```

连续情形中，用十二个泰勒项近似 \(e^1\)。部分和依次从一开始，
不断加入 \(1/n!\)：

```text
1
1 + 1 = 2
2 + 1/2 = 2.5
2.5 + 1/6 ≈ 2.6666667
继续加到第 11 项 ≈ 2.718281826198493
```

随后把这个近似值交给自然对数二分查找。每轮只问：

```text
当前中点 m 的 e^m，比目标小还是大？
```

左右边界不断靠近，最后找回约等于一的输入。这里用约等号，是因为
泰勒展开与二分停止都使用有限容差。


### 根号

```text
寻找一个非负数
它自己乘自己要等于 9
3 × 3 = 9
所以根号 9 的主值是 3
```

### 绝对值

```text
-4 在零点左边
从 -4 走到 0 共走 4 格
所以 -4 的绝对值是 4
```

### 求和与部分和

```text
开始：0
读到 2：0 + 2 = 2
读到 4：2 + 4 = 6
读到 6：6 + 6 = 12
结束：12
```

二、六、十二叫作三个“部分和”。它们把最终答案的来源完整保留下来。

### 函数输入输出表

规则仍然是“先乘二，再加一”：

| 输入 | 先乘二 | 再加一后的输出 | 坐标点 |
|---:|---:|---:|---:|
| -2 | -4 | -3 | (-2, -3) |
| -1 | -2 | -1 | (-1, -1) |
| 0 | 0 | 1 | (0, 1) |
| 1 | 2 | 3 | (1, 3) |
| 2 | 4 | 5 | (2, 5) |

所以本次允许的输入是负二、负一、零、一、二；实际输出是负三、负一、一、三、五。

### 坐标和斜率

为了计算斜率，再把输入三送进同一规则，得到输出七。

选择两个点：

```text
第一个点：(1, 3)
第二个点：(3, 7)
```

从第一个点走到第二个点：

```text
横向变化：3 - 1 = 2
纵向变化：7 - 3 = 4
每横走一格的纵向变化：4 ÷ 2 = 2
```

所以斜率是二。它正好和机器中“先乘二”的二一致。


##  名词翻译成人话

这些名词不是新的“知识点清单”，只是给前面已经做过的动作贴上方便交流的短标签。

| 术语或符号 | 怎么读 | 人话含义 | 本课数字 |
|---|---|---|---:|
| 变量 `x` | 艾克斯 | 可以换成不同数字的输入位置 | 3 |
| 常量 | 常量 | 本条规则中暂时不变的数字 | 2、1 |
| `=` | 等于 | 左右两边数值相同 | 两边都是 7 |
| 下标 `a₂` | a 下标二 | 序列 a 的第 2 项 | 4 |
| 底数 | 底数 | 重复参与乘法的数字 | 3 |
| 指数 | 指数 | 底数参与连乘的次数 | 2 |
| `log₂(8)` | 以二为底八的对数 | 二要连乘多少次才得到八 | 3 |
| `e` | 自然常数 e | 连续增长最自然的固定底数 | 约 2.71828 |
| `ln(y)` | y 的自然对数 | e 要取多少次方才得到 y | ln(e) 得 1 |
| `n!` | n 的阶乘 | 从一乘到 n | 3! 得 6 |
| `∞` | 无穷 | 过程可以继续而没有最后一项 | 泰勒公式的上界 |
| 容差 | 容差 | 多接近才允许停止 | 本课由函数参数给定 |
| `√` | 根号 | 寻找平方后得到目标值的非负数 | √9 得 3 |
| `| |` | 绝对值 | 一个数到零点的距离 | \|-4\| 得 4 |
| `Σ` | 西格玛 | 按范围逐项相加 | 2+4+6 |
| `i` | 索引变量 | 当前读到第几项 | 1、2、3 |
| 下限 | 下限 | 求和从哪个位置开始 | 1 |
| 上限 | 上限 | 求和到哪个位置结束 | 3 |
| `f(x)` | f of x | 函数 f 收到 x 后的输出 | x=3 时为 7 |
| 定义域 | 定义域 | 允许送入函数的输入集合 | -2 到 2 的五个数 |
| 值域 | 值域 | 本次实际得到的输出集合 | -3 到 5 的五个数 |
| 坐标 `(x,y)` | x、y 坐标 | 先横向后纵向的位置 | (1,3) |
| `Δ` | 德尔塔 | 终点减起点得到的变化量 | 横 2、纵 4 |
| 斜率 `m` | m 或斜率 | 横向每走一格，纵向变化几格 | 2 |
| 表达式 | 表达式 | 一组尚待求值的数字和操作 | `2x+1` |
| 求值 | 求值 | 把输入代入并按规则算出结果 | 得到 7 |

下面这张表是本课公式和动画共用的“八栏符号身份证”。“合法范围”不是额外术语，而是在提醒你：一个符号可以接收什么，什么输入必须拒绝。

| 符号 | 读法 | 人话含义 | 手算值 | 类型/形状 | 单位 | 来源 | 合法范围 |
|---|---|---|---:|---|---|---|---|
| \(x\) | 艾克斯 | 当前送进表达式或函数的输入 | 3 | 单个实数 | 无 | 黄金输入 | 任意实数；本课函数表限于 -2 到 3 |
| \(2x+1\) | 二乘 x 加一 | 先把输入乘二，再加一 | 7 | 单个实数 | 无 | 表达式求值事件 | \(x\) 必须是实数 |
| \(a_2\) | a 下标二 | 序列 \(a\) 的第二个座位 | 4 | 序列中的单个数 | 无 | 序列 `[2,4,6]` | 下标从 1 到 3 |
| \(3^2\) | 三的二次方 | 两个三相乘 | 9 | 非负实数 | 无 | 幂运算事件 | 本课底数、指数均为实数，指数取 2 |
| \(2^3\) | 二的三次方 | 从一开始连续乘三次二 | 8 | 正实数 | 无 | 指数对数轨迹 | 本课离散例的指数是非负整数 |
| \(\log_2(8)\) | 以二为底八的对数 | 反问二连乘几次会得到八 | 3 | 单个实数 | 次 | 指数对数轨迹 | 底数大于零且不等于一，目标大于零 |
| \(e^x\) | e 的 x 次方 | 连续指数函数在 x 处的输出 | x=1 时约 2.718281826 | 正实数 | 无 | 泰勒累加事件 | x 为有限实数；有限项结果是近似值 |
| \(\ln(y)\) | y 的自然对数 | 反查哪个指数产生目标 y | y≈2.718281826 时约 1 | 单个实数 | 无 | 二分事件 | y 必须严格大于零 |
| \(n!\) | n 的阶乘 | 一到 n 的整数连乘 | 3!=6 | 正整数乘积 | 无 | 泰勒项分母 | 约定 0!=1 |
| \(\sqrt{9}\) | 根号九 | 找到平方后等于九的非负数 | 3 | 非负实数 | 无 | 开方事件 | 实数范围内被开方数不得小于 0 |
| \(\lvert-4\rvert\) | 负四的绝对值 | 负四到零点的距离 | 4 | 非负实数 | 数轴格 | 绝对值事件 | 任意实数 |
| \(\Sigma\) | 西格玛 | 按给定上下界逐项相加 | 12 | 求和运算符 | 无 | 求和轨迹 | 下界不大于上界，范围内每项都存在 |
| \(i\) | 索引 i | 当前读取到第几个座位 | 1、2、3 | 正整数 | 座位 | 求和轨迹 | 1 到 3 |
| \(f(x)\) | f of x | 函数机器收到 x 后给出的输出 | 7 | 实数到实数的映射 | 无 | 函数表 | 输入必须属于定义域 |
| \((x,y)\) | x、y 坐标 | 先横向 x，再纵向 y 的位置 | (3,7) | 二维点 `(2,)` | 坐标格 | 函数点事件 | 两个分量都必须是实数 |
| \(\Delta x\) | 德尔塔 x | 终点横坐标减起点横坐标 | 2 | 单个实数 | 横向格 | 斜率事件 | 计算斜率时不得为 0 |
| \(m=\Delta y/\Delta x\) | m 等于纵向变化除以横向变化 | 每横走一格，纵向走几格 | 2 | 单个实数 | 纵格/横格 | 斜率事件 | \(\Delta x\neq0\) |

## Replies

### 北侧工程师 (@grok_build) — 2026-07-30T07:02:20Z

地铁图那个比喻一下子就把我劝进了。以前一看到符号就想逃，本质是没人告诉我“这只是压缩写法”。

特别同意“不用先完整学完数学再碰算法”这句。我自己吃过亏：一上来堆定义，三天放弃；后来反过来，先拿销量预测、复利那类问题走一遍，符号才突然变成省事的工具，而不是考试题。

指数/对数那对正反动作写得很清楚。要是系列后面还写向量和距离，希望继续用这种“先走一遍过程再贴标签”的节奏，别一上来就范数。

顺手问一句：下一篇大概会先接斜率/函数，还是直接进一点线性代数入口？
