(1)汉诺塔:规则:最初圆盘按照尺寸递减的顺序由下至上放在三根杆的一根杆上(总共有三根杆),目的是将所有的圆盘全部移到另外一根杆上,且不改变圆盘从下到上尺寸递减的顺序,一次仅移动一个圆盘,较大的圆盘不得移到比它小的圆盘上面,至少要移动多少次。
记n表示圆盘的数量,f(n)表示移动n个圆盘所需要的移动次数。
首先考虑平凡的情形:当n=0时,f(n)=0;n=1时,f(n)=1;n=2时,f(n)=3;n=3时,f(n)=7.......(不为思考小的情形而感到害臊)
尝试思考更为大的情形,如何能移动一个较为大的塔,关于n个盘一般转移的思路,首先把n-1个盘转移到一个不同的非目的杆上(f(n-1)次移动),移动最大盘到目的杆,最后再把剩下的n-1个圆盘移动到目的杆。
即f(n)=2*f(n-1)+1,同样可以看出2*f(n-1)+1次移动是充分且必要的。对递推式:
f(n)=2*f(n-1)+1,f(0)=0,(n>0),容易得到该一阶线性递推方程的解为f(n)=2^n-1;
[notes]:把f(n)=2^n-1的形式称为对应递推式的封闭形式。特殊的含有n!的表达式也称为封闭形式。
(2)分割问题:(1)直线分割平面:n条直线最多能够将平面分割成多少个区域?
首先考虑平凡情形,n=0时,f(n)=1;n=1时,f(n)=2;n=2时f(n)=4;.......
n-1条直线将平面分成f(n-1)个区域,n条直线要想划分最多的区域,则第n条直线必须与前面n-1条直线两两相交于n-1个交点,得到n-2条线段,2条射线,即f(n)=f(n-1)+n-2+2;一阶线性递推的解为(封闭形式)为f(n)=n*(n-1)/2+1; f(n)~n^2
(2)折线分割平面:f(n)=f(n-1)+2*(n-1)+2-1=2*n^2-n+1 f(n)~n^2
(3)封闭凸曲线分割平面:f(n)=f(n-1)+2(n-1)=n^2-n+2 f(n)~n^2
(4)平面分割空间区域:f(n)=f(n-1)+(n-1条直线分割第n个平面)=f(n-1)+n*(n-1)/2+1=n*(n^2+5)/6+1 f(n)~n^3
(3)约瑟夫环问题: