递归问题

(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)约瑟夫环问题:

 

 

 

 

                                       

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值