具体数学 - 1 递归问题

递归问题

河内塔

递归式

\[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\))我们可以直接解出它的特殊参数

总结

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

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

posted @ 2020-06-08 08:05  __int256  阅读(208)  评论(0编辑  收藏  举报