兔子繁殖

来源:互联网 发布:mysql注入 @@version@@ 编辑:程序博客网 时间:2024/04/24 23:53

编程遇到一个兔子繁殖问题,想不通,查一查才知道竟是这个熟悉的数列.其实只要把前几个月写下来就行了,原来的路走错了.

兔子生兔子,一对一年生多少

和这个黄金分割有密切关系的是一种数列,这数列是这样:1,2,3,5,8,13,21,…。在数学上人们称它为“斐波那契数列”(Fibonacci Sequence)。

这个数列在数学中是最奇特和最常出现的数列,美国数学家出版了一份专门对它研究的季刊称为《斐波那契季刊》(Fi-bonacci Quarterly),每三月出一次里面就是登载关于这数列最近新发现的性质。

斐波那契是意大利13世纪的数学家,全名是李纳都?斐波那契(Leonardo Fibonacci 1175—?),他生在比萨。从10世纪到13世纪以来,意大利的商人是闻名全欧,他们非常活跃的在地中海沿岸活动,把东方的奇珍异宝包括中国的丝绸从波斯人或阿拉伯人手中转卖给欧洲各国的封建王庭和贵族。

斐波那契的父亲是在北非的阿尔及利亚地方的一个海港当海关征税员,他虽然是一个基督教徒,但为了做生意的需要,他请了一个回教徒教师来教他的儿子,特别学习当时较罗马记数法还先进的“印度──阿拉伯数字记数法”以及东方的乘除计算法。因此斐波那契小时就接触到了东方的数学。

他长大后也成了一个商人,为了做生意他走过了埃及、西西里、希腊和叙利亚,也学会了阿拉伯文,而且对东方数学注意起来。在1202年他写了一本数学书,书名叫《Liber Abaci》,在这书里他第一个介绍印度──阿拉伯记数法,里面也有一些代数和几何问题。他的著作深深受阿拉伯数学家如Al-Khowarizmi及Abu Kamil的影响。

在这书里有一个很出名的“兔子生兔子问题”:有一个人把一对兔子放在四面围着的地方,想要知道一年后有多少对兔子生出来。假定每个月一对兔子生下另外一对。而这新的一对在二个月后就生下另外一对。

这是一个算术问题,但是却不能用普通的算术公式算出来。读者可以用符号A表示一对成长的兔子,B表示一对出生的兔子,我们用底下的图来表示兔子繁殖的情形:这里实箭头表示照样成长,虚箭头表示生下小兔子:

读者知道这个月的繁殖情况,下个月的繁殖情况可以很容易写出来,只要把这个月里的A改写成AB(表示A还加上一对新生的兔子),而这个月的B改写成A(表示新生小兔已成长为大兔子)。

请读者自己试试写到第十二月的情形,然后再填写下一个表:

因此在第二年的一月一日应该有144对新生小兔子,所以总共有兔子233+144=377对。

这个结果实在令人吃惊,在你最初看到斐波那契的问题时,你估计兔子数目字最多不会超过五十对,没有想到兔子是繁殖这么的多。这只不过是一个假设问题,如果兔子真的是以这样的速率生育,我们的地球可能不是“人吃兔子”而是“兔子吃人”了!

斐波那契数列的性质

数学家后来就把这数列1,1,2,3,5,8,13,21,34,55,89,144,233,…等等的数列称为斐波那契数列以纪念这个最先得到这个数列的数学家,而且用Fn来表示这数列的第n项。

读者可能早已注意到这数列有这样的性质:在1之后的每一个项是前面二项的和。即F1=1 F2=1,而Fn=Fn-1+Fn-2,当n大于或等于3。


  

对于每个n大于等于1,我们在k2=k+1二边同时乘上kn,我们得到等式kn+2=kn+1+kn,同样我们也有等式(kn+2=(kn+1+(kn

由这二个等式,读者容易获得下面的等式:
  
  

则我们得到
        

而对于n≥3,我们有Fn=Fn-1+Fn-2,因此我们的数列F1,F2,F3,F4,…事实上就是斐波那契数列。我们有了斐波那契数列的一般项用黄金数的表示式:F2,F3,F4
                         

这个公式是在一百多年前由法国数学家敏聂(JacquesPhillipe Marie Binet 1786—1856)发现,所以称为敏聂公式。这公式在研究斐波那契

数列的性质时很重要。我们现在看这公式的一些奇异现象,我们知
数表示这真是奇特。另外方面,当我们用敏聂公式来计算一些斐波那契
 
  无理数(-k)可以表示成一个最简单的无穷连分数:

斐波那契数又和我们以前介绍过的贾宪三角形有密切的关系。读者请参看(图四),在贾宪三角形的第n列(在这图里取n=10),然后由1为起点画一条线和水平方向成45度的角,这条线上所经过的数的和就是斐波那契数列的第n项。

例如在图四里,我们有F10=1+8+21+20+5=55

我们现在定义一个整数函数[]:R(实数集合)→Z(整数集合),对于任何实数x,[x]是最大的整数不超数学上很有用,读者以后会再遇到它。

我们介绍这个函数的目的是要用二项式系数来表示斐波那契数,对于任意斐波那契数Fn+1我们有公式

例如读者在贾宪三角形的第五列由1为起点画一条和水平方向成45度的角的线,我们看到它经过1,3,1,刚好就是

斐波那契数列有一个很奇怪的性质,很早就引起人们注意:你拿一个固定的正整数(比如说4),然后以这数来除所有的斐波那契数,把每个斐波那契数的余数写下来,你会发现到这些余数组成的数列会有周期(Period)现象出现。(对4来除的情形,你获得1,1,2,3,1,1,1,1,2,3,1,0,1,1,2,3,…等等。)

在19世纪时法国一个数学家鲁卡斯(E.Lucas)在研究数论的素数分布问题时发现和斐波那契数有些关系,而他又发现一种新的数列:1,3,4,7,11,18,29,47,76,123,199,322,521等等。这数列和斐波那契数列有相同的性质,第二项以后的项是前面二项的和组成。数学家们称这数列为鲁卡斯数列。

鲁卡斯数和斐波那契数有密切的关系,例如对于任何的整数n,我们用Ln表示第n个鲁卡斯数,那么我们恒有Ln×Fn=F2n。而鲁卡斯数的一般项也有类似敏聂公式的公式。这里我们留下不考虑,请对数学有兴趣的读者自己试找找看。

生物学和物理学上的斐波那契数

斐波那契数列并不是单纯出现在“生兔子问题”。大自然里一些花草长出的枝条也会出现斐波那契数,有一种叫着“喷嚏麦”(Sneezewort的直译,可能会像鲁迅指出的闹“牛奶路”Mikyway的笑话,希望懂植物学的读者赐以正确的中文名)的花草,新的一枝从叶腋长出,而另外的新枝又从旧枝长出来,老枝条和新枝条的数目的和就像那兔子问题一样。(看图五)

植物学家对于植物的叶子生长分布的情形发生兴趣,他们发现对同一类植物,它们的“叶分歧”(Leaf divergence)是一样的。从一片叶看起,你看在它上面要多少叶才刚好有一片叶长在和它相对同样位置,这数目写为p,另外看这些叶子是对茎来讲转了多

植物学家发现植物的叶分歧是和斐波那契数有关系。普通的草和菩

隔,它们能得到阳光照射进行光合作用,而且呼吸的较好。这真是奇妙

在物理上斐波那契数也出现。假定我们现在有一些氢气原子,一个电子最初所处的位置是最低的能级(Ground lever of energy),属于稳定状态。它能获得一个能量子或二个能量子(Quanta of energy)而使它上升到第一能级或者第二能级。但是在第一级的电子如失掉一个能量子就会下降到最低能级,它如获得一个能量子就会上升到第二级来。

现在研究气体吸收和放出能量的情形,假定最初电子是处在稳定状态即零能级,然后让它吸收能量,这电子可以跳到第1能级或第2能级。然后再让这气体放射能量,这时电子在1级能级的就要下降到0能级,而在第2能级的可能下降到0能级或者第1能级的位置去。

我们在图六列出:吸收、放出、吸收、放出、吸收、放出这六个过程中电子能级可能的变化情形。读者可以看到电子所处的状态可能的情形是:1、2、3、5、8、13、21…种。这是斐波那契数列的一部份。而电子所处能级的或然率在这几种情况下又是和斐波那契数有关!