因为第一维对结果无影响,我们可以发现数组的第一维是可以省略的,于是可以直接改成 `f[x][y] = min(f[x][y], f[x][k]+f[k][y])` 。
???+ note "证明第一位对结果"
- 我们注意到如果放在一个给定第一维 `k` 二维数组中,`f[i][k]` 与 `f[k][j]` 在某一行和某一列。而 `f[i][j]` 则是该行和该列的交叉点上的元素。
+ 我们注意到如果放在一个给定第一维 `k` 二维数组中, `f[i][k]` 与 `f[k][j]` 在某一行和某一列。而 `f[i][j]` 则是该行和该列的交叉点上的元素。
- 现在我们需要证明将 `f[k][i][j]` 直接在原地更改也不会更改它的结果:我们注意到 `f[k][i][j]` 的涵义是第一维为 `k-1` 这一行和这一列的所有元素的最小值,包含了 `f[k-1][i][j]`,那么我在原地进行更改也不会改变最小值的值,因为如果将该三维矩阵压缩为二维,则所求结果 `f[i][j]` 一开始即为原 `f[k-1][i][j]` 的值,最后依然会成为该行和该列的最小值。
+ 现在我们需要证明将 `f[k][i][j]` 直接在原地更改也不会更改它的结果:我们注意到 `f[k][i][j]` 的涵义是第一维为 `k-1` 这一行和这一列的所有元素的最小值,包含了 `f[k-1][i][j]` ,那么我在原地进行更改也不会改变最小值的值,因为如果将该三维矩阵压缩为二维,则所求结果 `f[i][j]` 一开始即为原 `f[k-1][i][j]` 的值,最后依然会成为该行和该列的最小值。
故可以压缩。
- 坏事件中至少一者发生的概率, **不小于** 每一个的发生概率之和,减掉每两个同时发生的概率之和。
- 坏事件中至少一者发生的概率, **不超过** 每一个的发生概率之和,减掉每两个同时发生的概率之和,加上每三个同时发生的概率之和。
- ……
- - 随着层数越来越多,交替出现的上界和下界也越来越紧。这一系列结论形式上类似容斥原理,证明过程也和容斥类似,这里略去。
+ - 随着层数越来越多,交替出现的上界和下界也越来越紧。这一系列结论形式上类似容斥原理,证明过程也和容斥类似,这里略去。
- **自然常数的使用** : $\Big(1-\dfrac 1n\Big)^n\leq \dfrac 1e,\forall n\geq1$
+ **自然常数的使用** : $\Big(1-\dfrac 1n\Big)^n\leq \dfrac 1e,\forall n\geq1$
- 左式关于 $n\geq 1$ 单调递增且在 $+\infty$ 处的极限是 $\dfrac 1e$ ,因此有这个结论。