斐波那契数列(兔子数列)

斐波那契数列(兔子数列)文章内容摘自 百度百科 1 定义斐波那契数列 Fibonacciseq 又称黄金分割数列 因数学家列昂纳多 斐波那契 LeonardodaFi 以兔子繁殖为例子而引入

大家好,欢迎来到IT知识分享网。

文章内容摘自——百度百科

1. 定义

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……

斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

 

2. 递推公式

斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …

如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2)

显然这是一个线性递推数列。

 

3. 通项公式

斐波那契数列(兔子数列)

(如上,又称为“比内公式”,是用无理数表示有理数的一个范例。)

注:此时

 斐波那契数列(兔子数列) 

斐波那契数列(兔子数列)

 

4. 与黄金分割关系

有趣的是,这样一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近0.618)。

1÷1=1,1÷2=0.5,2÷3=0.666…,3÷5=0.6,5÷8=0.625…………,55÷89=0.……………144÷233=0.…46368÷75025=0.……

越到后面,这些比值越接近黄金比.

 

5. 算法应用

(1)现有长为144cm的铁丝,要截成n小段(n>2),每段的长度不小于1cm,如果其中任意三小段都不能拼成三角形,则n的最大值为多少?

分析:由于形成三角形的充要条件是任何两边之和大于第三边,因此不构成三角形的条件就是存在两边之和不超过另一边。截成的铁丝最小为1,因此可以放2个1,第三条线段就是2(为了使得n最大,因此要使剩下来的铁丝尽可能长,因此每一条线段总是前面的相邻2段之和),依次为:1、1、2、3、5、8、13、21、34、55,以上各数之和为143,与144相差1,因此可以取最后一段为56,这时n达到最大为10。

我们看到,“每段的长度不小于1”这个条件起了控制全局的作用,正是这个最小数1产生了斐波那契数列,如果把1换成其他数,递推关系保留了,但这个数列消失了。这里,三角形的三边关系定理和斐波那契数列发生了一个联系。

在这个问题中,144>143,这个143是斐波那契数列的前n项和,我们是把144超出143的部分加到最后的一个数上去,如果加到其他数上,就有3条线段可以构成三角形了。

 

(2)有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法?

这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……

1,2,3,5,8,13……所以,登上十级,有89种走法。

 

((3)类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有多少种?

答案是(1/√5)*{[(1+√5)/2]^(10+2) – [(1-√5)/2]^(10+2)}=144种。

求递推数列a⑴=1,a(n+1)=1+1/a(n)的通项公式

由数学归纳法可以得到:a(n)=F(n+1)/F(n),将斐波那契数列的通项式代入,化简就得结果。

 

(4)兔子繁殖问题

斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。

一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?

我们不妨拿新出生的一对小兔子分析一下:

第一个月小兔子没有繁殖能力,所以还是一对

两个月后,生下一对小兔对数共有两对

三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对

------

依次类推可以列出下表:

经过月数

1

2

3

4

5

6

7

8

9

10

11

12

幼仔对数

1

0

1

1

2

3

5

8

13

21

34

55

成兔对数

0

1

1

2

3

5

8

13

21

34

55

89

 

总体对数

1

1

2

3

5

8

13

21

34

55

89

144

 

可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。

这个数列是意大利中世纪数学家斐波那契在<算盘全书>中提出的,这个级数的通项公式,除了具有a(n+2)=an+a(n+1)的性质外,还可以证明通项公式为:

斐波那契数列(兔子数列),(n=1,2,3,…)

 

代码

c++代码: 

//输入n,求a(n) #include <iostream> #include <cstdio> using namespace std; int fun(int n) { if (n == 0) return 0; if (n == 1) return 1; if (n >= 2) return (fun(n-1) + fun(n-2)); } int main() { int n; cin>>n; printf("%d\n", fun(n)); return 0; }

python代码: 

# 输出斐波那契数列 arr = [] def fib(n): a, b = 1, 1 while b < n: a, b = b, a+b arr.append(a) n = int(input()) fib(n) print(arr) print(len(arr))

 


摘自:

百度百科

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/138927.html

(0)
上一篇 2025-06-09 21:15
下一篇 2025-06-09 21:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信