码迷,mamicode.com
首页 > 其他好文 > 详细

递归问题

时间:2018-02-27 23:44:35      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:val   序列号   直线   第一章   lang   100%   个人   它的   nbsp   

第一章递归问题

1.1 河内塔

n个圆盘移动从一个柱子借助一个柱子,移动到另一个柱子上的次数为 :

递推式:T(n)=2*T(n-1)+1 , n>0,T(0)=0

归纳法得出:T(n)=pow(2,n)-1 n>=0

寻求封闭形式的表达式三个阶段:

1)研究小的情形。

2)对有意义的量求出数学表达式并给出证明。

3)对数学表达式求出封闭形式并予以证明。


1.2 平面上的直线

n(直线)最多能把平面分为:

递推式:L(n)=L(n-1)+n , n>0 ,L(0)=1

对递推式展开或解开,如下:

L(n)=L(n-1)+n

=L(n-2)+(n-1)+n

=….

=L(0)+1+2+...+(n-1)+n

=1+n*(n+1)/2, n>=0

S(n)=1+2+...+n,S(n) 可以用S(n)和它的反向书写相加

n刀(呈锯齿形)最多能把平面分为:

Z(n)=L(2*n)-2*n=2*n*n-n+1, n>=0


1.3 约瑟夫问题

n个人形成圈,每隔一个人出列,问最后一个人的序列?

(1)若刚开始序列中有偶数(2*n)个人,经过一轮后,序列为:1,3,5….2*n-1, 既可以看作是n 个人的情况,序列号加倍减一, 即J(2*n)=2*J(n)-1 , n>=1

(2)若刚开始序列中有奇数(2*n+1)个人,经过一轮后,序列为:3,5,7,...2*n+1 ,看作n个人的情况,序列号加倍加一 ,J(2*n+1)=2*J(n)+1 , n>=1

递推式:

J(1)=1;

J(2*n)=2*J(n)-1 , n>=1

J(2*n+1)=2*J(n)+1 , n>=1

通过递推式打出表格:

n

1

2 3

4 5 6 7

8 9 10 11 12 13 14 15

J(n)

1

1 3

1 3 5 7

1 3 5 7 9 11 13 15

猜想 J(pow(2,m)+l)=2*l+1 , m>=0 ,0<=l<pow(2,m) 通过数学归纳法证明该猜想

 

待续。。。。。。。

递归问题

标签:val   序列号   直线   第一章   lang   100%   个人   它的   nbsp   

原文地址:https://www.cnblogs.com/lemon-jade/p/8480820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!