搜索
首页 电脑/网络 操作系统/系统故障

编程问题!!高手进

有一对小兔子,出生一个月以后变成一对大兔子,二个月后生出第一对小兔子,自己变成一对老兔子,此时共有两对兔子(一对老兔子,一对小兔子)。三个月后,老兔子又生成一对小兔子,上个月生的小兔子变成大兔子,此时共有三对兔子(老、大、小各一对)。四个月后大兔子变成老兔子,小兔子变成大兔子,二对老兔子生成二对小兔子,此时共有五对兔子(老、小各二对,大兔子一对)……请编程计算11个月后共有多小对兔子?

全部回答

2008-12-03

0 0
    来自网上。 刚才发了几次都不见了,这又重发一次 添加到搜藏 返回百度百科首页 编辑词条 斐波拉契数列目录 【斐波拉契数列(斐波那契数列)简介】 【斐波拉契数列的存在】 【斐波拉契数列与黄金分割】 【斐波拉契数列的变式】 【该数列有很多奇妙的属性】 【斐波那契数列别名】 【斐波那契数列通项公式的推导】 【VB程序设计】 【C语言程序】 【Pascal语言程序】 【C语言程序】 【Pascal语言程序】 [编辑本段]【斐波拉契数列(斐波那契数列)简介】   ■斐波拉契数列的简介   斐波拉契数列(又译作“斐波那契数列”或“斐波那切数列”)是一个非常美丽、和谐的数列,它的形状可以用排成螺旋状的一系列正方形来说明(如右词条图),起始的正方形(图中用灰色表示)的边长为1,在它左边的那个正方形的边长也是1 ,在这两个正方形的上方再放一个正方形,其边长为2,以后顺次加上边长为3、5、8、13、2l……等等的正方形。
    这些数字每一个都等于前面两个数之和,它们正好构成了斐波那契数列。“斐波那契数列”的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年。
  籍贯大概是比萨)。他被人称作“比萨的列昂纳多”。1202年,他撰写了《珠算原理》(Liber Abaci)一书。  他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。
  他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。   斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34……   这个数列从第三项开始,每一项都等于前两项之和。  它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n} (√5表示5的算术平方根) (19世纪法国数学家敏聂(Jacques Phillipe Marie Binet 1786-1856)   很有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。
       斐波拉契数列之闻名,可能还跟美国悬疑作家丹·布朗有关,他在他的小说《达芬奇密码》之中巧妙地运用了该数列。   其实,我国现行的高中教材中提及了杨辉三角,斐波拉契数列可在其中寻得。
     ■斐波拉契数列的出现   13世纪初,欧洲最好的数学家是斐波拉契;他写了一本叫做《算盘书》的著作,是当时欧洲最好的数学书。  书中有许多有趣的数学题,其中最有趣的是下面这个题目:   “如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月裏,又能开始生1对小兔子,假定在不发生死亡的情况下,由1对初生的兔子开始,1年后能繁殖成多少对兔子?”   斐波拉契把推算得到的头几个数摆成一串:1,1,2,3,5,8……   这串数里隐含着一个规律:从第3个数起,后面的每个数都是它前面那两个数的和。
    而根据这个规律,只要作一些简单的加法,就能推算出以后各个月兔子的数目了。   于是,按照这个规律推算出来的数,构成了数学史上一个有名的数列。大家都叫它“斐波拉契数列”,又称“兔子数列”。
  这个数列有许多奇特的的性质,例如,从第3个数起,每个数与它后面那个数的比值,都很接近于0。  618,正好与大名鼎鼎的“黄金分割律”相吻合。人们还发现,连一些生物的生长规律,在某种假定下也可由这个数列来刻画呢。
     斐氏本人对这个数列并没有再做进一步的探讨。直到十九世纪初才有人详加研究,1960年左右,许多数学家对斐波拉契数列和有关的现象非常感到兴趣,不但成立了斐氏学会,还创办了相关刊物,其后各种相关文章也像斐氏的兔子一样迅速地增加。
       ■斐波拉契数列的来源及关系   斐波拉契(Fibonacci)数列来源于兔子问题,它有一个递推关系,   f(1)=1   f(2)=1   f(n)=f(n-1)+f(n-2),其中n>=2   {f(n)}即为斐波拉契数列。
     ■斐波拉契数列的公式   它的通项公式为:{[(1+√5)/2]^n - [(1-√5)/2]^n }/√5 (注:√5表示根号5)   ■斐波拉契数列的某些性质   ■1),f(n)f(n)-f(n+1)f(n-1)=(-1)^n;   ■2), f(1)+f(2)+f(3)+……+f(n)=f(n+2)-1   ■3),arctan[1/f(2n+1)]=arctan[1/f(2n+2)]+arctan[1/f(2n+3)] [编辑本段]【斐波拉契数列的存在】   甚至可以说,斐波拉契数列无处不在,以下仅举几条常见的例子:   ■1.杨辉三角对角线上各数之和构成斐波拉契数列 .   ■2.多米诺牌(可以看作一个2×1大小的方格)完全覆盖一个n×2的棋盘,覆盖的方案数等于斐波拉契数列。
       ■3. 从蜜蜂的繁殖来看,雄峰只有母亲,没有父亲,因为蜂后产的卵,受精的孵化为雌蜂,未受精的孵化为雄峰。人们在追溯雄峰的祖先时,发现一只雄峰的第n代祖先的数目刚好就是斐波拉契数列的第n项Fn。
     ■4.钢琴的13个半音阶的排列完全与雄峰第六代的排列情况类似,说明音调也与斐波拉契数列有关。     ■5.自然界中一些花朵的花瓣数目符合于斐波拉契数列,也就是说在大多数情况下,一朵花花瓣的数目都是3,5,8,13,21,34,……(有6枚是两套3枚;有4枚可能是基因突变)。
     ■6.如果一根树枝每年长出一根新枝,而长出的新枝两年以后,每年也长出一根新枝,那么历年的树枝数,也构成一个斐波拉契数列 . [编辑本段]【斐波拉契数列与黄金分割】   斐波拉契数列与黄金分割有什么关系呢?经研究发现,相邻两个斐波拉契数的比值是随序号的增加而逐渐趋于黄金分割比的。
    即f(n-1)/f(n)-→0。618…。由于斐波拉契数都是整数,两个整数相除之商是有理数,所以只是逐渐逼近黄金分割比这个无理数。但是当我们继续计算出后面更大的斐波拉契数时,就会发现相邻两数之比确实是非常接近黄金分割比的。
     不仅这个由1,1,2,3,5。。。  。开始的"斐波拉契数"是这样,随便选两个整数,然后按照斐波拉契数的规律排下去,两数间比也是会逐渐逼近黄金比的. [编辑本段]【斐波拉契数列的变式】   ■1。
  帕多瓦数列:1,1,1,2,2,3,4,5,7,9,12,16,21,……这样的数列称为帕多瓦数列。它和斐波拉契数列非常相似,稍有不同的是:每个数都是跳过它前面的那个数,并把再前面的两个数相加而得出的。
    这个数列可以用另一幅图来表示,它是由一些等边三角形构成的(如右图)。开始的三角形用灰色表示,为了使这些三角形天衣无缝地拼在一起,头三个三角形的边长均为1,其后的两个三角形的边长为2,然后依次是3、4、5、7、9、12、16、2l……等等。
     ■2。冬冬有15块糖,如果每天至少吃3块,吃完为止,那么共有多少种不同的吃法?   如果冬冬有3块糖、4块糖或者5块糖,都只有1种吃法;如果有6块糖,则有2种吃法;如果有7块糖,则有3种吃法;如果有8块糖,则有4种吃法;如果有9块糖,则有6种吃法.   既:吃糖的粒数:3 4 5 6 7 8 9 10 11 12...   糖的吃法:1 1 1 2 3 4 6 9 13 19...   这样的数列,它和斐波拉契数列不同的是,每次都是跳过中间的那个数,再把第1、3两个数相加,等于第4个数。
    它的规律和斐波拉契数列既相似之处又有不同之处.   ■3。小明要上楼梯,他每次能向上走一级、两级或三级,如果楼梯有10级,他有几种不同的走法?   这里我们不妨也来研究一下其中的规律:如果楼梯就一级,他有1种走法;如果楼梯有两级,他有2种走法;如果楼梯有三级,他有4种走法;如果有五级楼梯,他有7种走法.   既:楼梯的级数:1 2 3 4 5 6 7 8 ...   上楼梯的走法:1 2 4 7 13 24 44 81...   这其中的规律就是,这里从第4个数开始,每一个数都等于它前面的3个数之和。
     [编辑本段]【该数列有很多奇妙的属性】   比如:随着数列项数的增加,前一项与后一项之比越逼近黄金分割0。6180339887…… (后一项与前一项之比1。6180339887…… )   还有一项性质,从第二项开始,每个奇数项的平方都比前后两项之积多1,每个偶数项的平方都比前后两项之积少1。
       如果你看到有这样一个题目:某人把一个8*8的方格切成四块,拼成一个5*13的长方形,故作惊讶地问你:为什么64=65?其实就是利用了斐波那契数列的这个性质:5、8、13正是数列中相邻的三项,事实上前后两块的面积确实差1,只不过后面那个图中有一条细长的狭缝,一般人不容易注意到。
       如果任意挑两个数为起始,比如5、-2。4,然后两项两项地相加下去,形成5、-2。4、2。6、0。2、2。8、3、5。8、8。8、14。6……等,你将发现随着数列的发展,前后两项之比也越来越逼近黄金分割,且某一项的平方与前后两项之积的差值也交替相差某个值。
     斐波那契数列的第n项同时也代表了集合{1,2,。  。。,n}中所有不包含相邻正整数的子集个数。 [编辑本段]【斐波那契数列别名】      斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。
     一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?   我们不妨拿新出生的一对小兔子分析一下:   第一个月小兔子没有繁殖能力,所以还是一对;   两个月后,生下一对小兔民数共有两对;   三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;   ------   依次类推可以列出下表:   经过月数:0 1 2 3 4 5 6 7 8 9 10 11 12   兔子对数:1 1 2 3 5 8 13 21 34 55 89 144 233   表中数字1,1,2,3,5,8---构成了一个数列。
    这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。   这个数列是意大利中世纪数学家斐波那契在<算盘全书>中提出的,这个级数的通项公式,除了具有a(n+2)=an+a(n+1)/的性质外,还可以证明通项公式为:an=1/√[(1+√5/2) n-(1-√5/2) n](n=1,2,3。
    。。。。) [编辑本段]【斐波那契数列通项公式的推导】   斐波那契数列:1,1,2,3,5,8,13,21……   如果设F(n)为该数列的第n项(n∈N+)。那么这句话可以写成如下形式:   F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)   显然这是一个线性递推数列。
       通项公式的推导方法一:利用特征方程   线性递推数列的特征方程为:   X^2=X+1   解得   X1=(1+√5)/2, X2=(1-√5)/2。   则F(n)=C1*X1^n + C2*X2^n   ∵F(1)=F(2)=1   ∴C1*X1 + C2*X2   C1*X1^2 + C2*X2^2   解得C1=1/√5,C2=-1/√5   ∴F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n} (√5表示5的算术平方根)   通项公式的推导方法二:普通方法   设常数r,s   使得F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]   则r+s=1, -rs=1   n≥3时,有   F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]   F(n-1)-r*F(n-2)=s*[F(n-2)-r*F(n-3)]   F(n-2)-r*F(n-3)=s*[F(n-3)-r*F(n-4)]   ……   F(3)-r*F(2)=s*[F(2)-r*F(1)]   将以上n-2个式子相乘,得:   F(n)-r*F(n-1)=[s^(n-2)]*[F(2)-r*F(1)]   ∵s=1-r,F(1)=F(2)=1   上式可化简得:   F(n)=s^(n-1)+r*F(n-1)   那么:   F(n)=s^(n-1)+r*F(n-1)   = s^(n-1) + r*s^(n-2) + r^2*F(n-2)   = s^(n-1) + r*s^(n-2) + r^2*s^(n-3) + r^3*F(n-3)   ……   = s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)*F(1)   = s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)   (这是一个以s^(n-1)为首项、以r^(n-1)为末项、r/s为公比的等比数列的各项和)   =[s^(n-1)-r^(n-1)*r/s]/(1-r/s)   =(s^n - r^n)/(s-r)   r+s=1, -rs=1的一解为 s=(1+√5)/2, r=(1-√5)/2   则F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n} [编辑本段]【VB程序设计】   Private Sub Form_Click()   f(1)=1   f(2)=1   For i =3 To 30   f(i)=f(i-1)+f(i-2)   Next i   For i =1To 30   Print f(i);   If i Mod 5 = 0 Then Print   Next i   End Sub [编辑本段]【C语言程序】   main()   {   long fib[40] = {1,1};   int i;   for(i=2;i<40;i++)   {   fib[i ] = fib[i-1]+fib[i-2];   }   for(i=0;i<40;i++)   {   printf("F%d==%d\n", i, fib[ i]);   }   return 0;   } [编辑本段]【Pascal语言程序】   var   fib: array[0。
    。40]of longint;   i: integer;   begin   fib[0] := 1;   fib[1] := 1;   for i:=2 to 39 do   fib[i ] := fib[i-1] + fib[i-2];   for i:=0 to 39 do   write('F', i, '=', fib[i ]);   end。
     本词条对我有帮助 89 参考资料: 1。[美]比伦特·阿塔拉伊,《达·芬奇的数字迷宫》(中信出版社 ,2007) 第34页 tp:// 3。
    来源词 斐波那契数列 贡献者:吞云、shantou995、『老爹▲、puzzled314、梦呓的鱼、zdqpp、鱼雁花月、rufeel、SS7E、wtywty2006、雨若晴、丁颂原、kikoqiu、 侬浓、sqybi、小猪蒂皮、月临真人、疯狂答题手、wanggd2086、护花左使、compilers [我来完善]相关词条: 更多 卢卡斯数列大衍数列法里数列黄金分割 开放分类: 数学,数列,规律,代数,斐波拉契 更多 合作编辑者: 寒霖雨、绝地武士Ankin、wzchaofan、往前是黎明、卅水合超盐酸猫、FreeFall、 袋鼠康康、景观美、 lishucheng_71、忍耐命 如果您认为本词条还需进一步完善,百科欢迎您也来参与编辑词条 在开始编辑前,您还可以先学习如何编辑词条词条统计 浏览次数:约 2325 次 编辑次数:17 次 历史版本 最近更新:2008-09-10 创建者:aymi 什么是突出贡献者突出贡献者 忍耐命 五级 版本 袋鼠康康 十五级 版本 ©2008 Baidu 权利声明 。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
操作系统/系统故障
硬件
电脑装机
程序设计
互联网
笔记本电脑
反病毒
百度
软件
操作系统/系统故障
操作系统/系统故障
举报
举报原因(必选):
取消确定举报