给定 l = [ a n , . . . , a 0 ] l=[a_n, ..., a_0] l=[an,...,a0],现在
for idx in range(len(l)-2, -1, -1):l[idx] += l[idx+1] * ld
注:这里的ld就是 λ \lambda λ,定义 λ 0 = 1 \lambda^0=1 λ0=1
证明变换后:
l = [ ∑ i = 0 n λ i a n − i , ⋯ , a 0 ] l=[\sum_{i=0}^n \lambda^i a_{n-i}, \cdots, a_0] l=[∑i=0nλian−i,⋯,a0]
**证:**使用数学归纳法
现在从后往前看,最后一个位置 a 0 a_0 a0显然成立
然后看倒数第2个位置,变换前是 a 1 a_1 a1,变换后是 a 1 + λ a 0 a_1+\lambda a_0 a1+λa0,也成立
下面假设在第j个(从右往左数,j从0开始计数)位置处,有
a j a_j aj
变换后
λ 0 a j + λ 1 a j − 1 + ⋯ λ j a 0 \lambda^0 a_j+\lambda^1 a_{j-1}+\cdots \lambda^j a_0 λ0aj+λ1aj−1+⋯λja0
下面考虑第j+1处
已知变换前,该处是 a j + 1 a_{j+1} aj+1
根据代码,变换后就是
a j + 1 + λ ( λ 0 a j + λ 1 a j − 1 + ⋯ λ j a 0 ) a_{j+1}+\lambda (\lambda^0 a_j+\lambda^1 a_{j-1}+\cdots \lambda^j a_0) aj+1+λ(λ0aj+λ1aj−1+⋯λja0)
λ 0 a j + 1 + λ 1 ( λ 0 a j + λ 1 a j − 1 + ⋯ λ j a 0 ) \lambda^0 a_{j+1}+\lambda^1 (\lambda^0 a_j+\lambda^1 a_{j-1}+\cdots \lambda^j a_0) λ0aj+1+λ1(λ0aj+λ1aj−1+⋯λja0)
λ 0 a j + 1 + λ 1 a j + λ 2 a j − 1 + ⋯ λ j + 1 a 0 \lambda^0 a_{j+1}+\lambda^1 a_j+\lambda^2 a_{j-1}+\cdots \lambda^{j+1} a_0 λ0aj+1+λ1aj+λ2aj−1+⋯λj+1a0
∑ i = 0 j + 1 λ i a j + 1 − i \sum_{i=0}^{j+1}\lambda^{i} a_{j+1-i} ∑i=0j+1λiaj+1−i
由于在第 j j j处成立推得在第 j + 1 j+1 j+1处成立,而 l l l长度有限,因此该规律在 l l l的每一个分量成立。QED。