下面我们将要介绍Fibonacci的基本概念、应用、和求解方法
一、Fibonacci数列
什么是Fibonacci数列,在这里我们采用递归的方式来定义Fibonacci数列:
F(1) = 1, F(2) = 1, F(3) = 2, F(4) = 3, F(5) = 5, F(6) = 8,…….F(n)= F(n-2) + F(n-1)。
例如(1,1,2,3,5,8,13,21,34,55,…)
二、Fibonacci数列的另一种定义
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对
两个月后,生下一对小兔民数共有两对
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对
------
依次类推可以列出下表:
成兔对数=前月成兔对数+前月幼仔对数
幼仔对数=前月成兔对数
总体对数=本月成兔对数+本月幼仔对数
可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。
三、Fibonacci数列的性质
(1) 最重要的一个性质,就是从数列的第三项开始:F(n) = F(n-2) + F(n-1)
(2) 前n项和Sn=F(1)+F(2)+…+F(n) = F(n+2) – 1
(3) 从第二项开始,每个奇数项的平方都比前后两项之积多1,每个偶数项的平方都比前后两项之积少1。(注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如第四项3是奇数,但它是偶数项,第五项5是奇数,但它是奇数项)。
(4) 当n趋于无穷大时,F(n)/F(n-1) = 1.618 黄金分割点。
四、Fibonacci数列的应用
(1) 排列组合
有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法?
解法一、这就是一个递推的Fibonacci数列,首先设n级台阶有F(n)种走法,
如果最后一步走1个台阶,那么就有F(n-1)种走法;
如果最后一步走2个台阶,那么就有F(n-2)种走法。
所以就有了F(n) = F(n-1) +F(n-2)。
这就是一个Fibonacci数组,如果登上第一个台阶,有一种走法;如果登上第二个台阶,有两种走法;如果登上第三个台阶,那 么需要三种走法。依次类推,如果登上10个台阶,最终结果为89种走法。
解法二、下面我们用排列组合来证明该方法的正确性
每一步只能跨一级或两级台阶,于是我们假设在登上10级台阶的过程中,我们跨一级台阶用了x次,跨两级台阶用了y次。
则有x + 2 * y= 10.
x= 0 , y = 5 1种
x = 2, y = 4 相当于对2个黑球,4个白球进行排序。则有 P(6,6) / (P(2,2) * P(4,4)) = 15
x = 4, y = 3 相当于对4个黑球,3个白球进行排序。则有 P(7,7) / (P(4,4) * P(3,3)) = 35
x = 6, y = 2 相当于对6个黑球,2个白球进行排序。则有 P(8,8) / (P(6,6) * P(2,2)) = 28
x = 8, y = 1 相当于对8个黑球,1个白球进行排序。则有 P(9,9) / (P(8,8) * P(1,1)) = 9
x = 10, y = 0 1种
1 + 15 + 35 + 28 + 9 + 1 = 89
(2) 数字谜题
现有长为144cm的铁丝,要截成n小段(n>2),每段的长度不小于1cm,如果其中任意三小段都不能拼成三角形,则n的最大值为多少?
分析:由于形成三角形的充要条件是任何两边之和大于第三边。因此不能构成三角形的条件就是任何两边之和不超过第三边,为了保证n最大,故使得两边之和等于第三边。因为每段的长度不小于1cm,因此可以截取两个1cm,第三段就是1+1=2cm,依次类推,第n段就是第n-1和n-2段的之和。则依次为:1,1,2,3,5,8,13,21,34,55,以上个数和为143,与144相差1cm。因此最后一段要取56,这时候n达到最大值为10.
如果每段的长度不小于2cm呢?我们是不是也可以按这个规律分下去吗?
是的,同样第一段为2cm,第二段为2cm,第三段为4cm,第四段为6cm,依次类推。
(2,2,4,6,10,16,26,42,68)= 176
(2,2,4,6,10,16,26,42)= 108
因此最后一段取144-108+42 = 78,故最大的n值为8
我们称具有F(n)=F(n-1)+F(n-2)这样规律的数列称为广义的Fibonacci数列。
五、Fibonacci数列的求解