具体数学

递归问题

河内塔

递归式

[f_n = 2 f_{n - 1} + 1 ]

封闭形式

[f_n = 2^n - 1 ]

  • 证明

(f_1 = 1) 成立,考虑 (f_{n - 1}) 成立 (f_n = 2 (2^{n - 1} - 1) + 1 = 2^n - 1)

平面上的直线

(n) 个直线最多划分出多少部分

递归式

考虑新加入一条直线,如果和前面的直线有交点,则会新分一个平面,只需要让新加入的直线不和任何一条已有直线平行即可

[f_n = f_{n - 1} + n ]

封闭形式

考虑从 (f_0) 一直加到 (f_n)

[f_n = f_0 + 1 + 2 + ... + n = 1 + frac {(1 + n) n} 2 ]

考虑用数学归纳法证明

[f_n = f_{n - 1} + n = 1 + n + frac{n ^ 2 - n} 2 = 1 + frac{n ^ 2 + n} 2 ]

约瑟夫问题

一个 (1)(n) 环,每隔一个数删去一个(删除从第二个数开始删),最后剩下哪个数?

递归式

首先考虑 (2n) 是偶数,发现删除一圈后,所有偶数都被删除了 ((2,4,6,...,2n))

剩下的每个数可以看做一个 (n) 的环,每个数乘 2 减 1

那么我们知道了

[f_{2n} = 2f_n - 1 ]

再考虑 (2n + 1) 是奇数,相当于转了一圈后,把 1 也删除了

剩下的每个数可以看做一个 (n) 的环,每个数乘 2 加 1

[f_{2n + 1} = 2f_n + 1 ]

封闭形式

找到 (n) 的最高次幂 (2^m)

可以发现所有最高次幂是 (2^m) 的结果都是从最高次幂为 (2^{m - 1}) 的情况下得到的

经过寻找规律可得

[f_n = 2 (n - 2^{m}) + 1 ]

这个式子用数学归纳法可以证明

推论

如果一个函数长的和约瑟夫问题很像,或者说有另外的递推式,我们应该怎样寻找它的封闭形式呢?

对于一个函数,我们可以加入独立参数来描绘它,比如,(f_1 = a, f_{2n} = 2f_n + b_0, f_{2n + 1} = 2f_n + b1)

对于一些特殊情景(如 (f_2 = 2f_1 + b_0))我们可以直接解出它的特殊参数

总结

通过上面的例子可以发现,在求解一个封闭形式时,一般要先讨论边界和小数情况,进行合理推理和猜想,最后证明式子

对于一般的递归式,可以设置独立参数来辅助求解

原文地址:https://www.cnblogs.com/XiaoVsun/p/13063560.html