斐波那契数列
来源:互联网 发布:com域名和cn域名 编辑:程序博客网 时间:2024/05/19 14:52
斐波那契数列
斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1960年代起出版了《斐波纳契数列》季刊,专门刊载这方面的研究成果。
递推公式
斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...[1]
如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式:[1]
显然这是一个线性递推数列。[1]
通项公式
(如上,又称为“比内公式”,是用无理数表示有理数的一个范例。)
注:此时a1=1,a2=1,an=a(n-1)+a(n-2)(n>=3,n∈N*)
现有长为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。
有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法?
这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……
1,2,3,5,8,13……所以,登上十级,有89种走法。
类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有多少种?
答案是(1/√5)*{[(1+√5)/2]^(10+2) - [(1-√5)/2]^(10+2)}=144种。
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对
两个月后,生下一对小兔对数共有两对
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对
------
依次类推可以列出下表:
经过月数
0
1
2
3
4
5
6
7
8
9
10
11
12
幼仔对数
1
0
1
1
2
3
5
8
13
21
34
55
89
成兔对数
0
1
1
2
3
5
8
13
21
34
55
89
144
总体对数
1
1
2
3
5
8
13
21
34
55
89
144
233
幼仔对数=前月成兔对数
成兔对数=前月成兔对数+前月幼仔对数
总体对数=本月成兔对数+本月幼仔对数
可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。
这个数列是意大利中世纪数学家斐波那契在<算盘全书>中提出的,这个级数的通项公式,除了具有a(n+2)=an+a(n+1)的性质外,还可以证明通项公式为:an=(1/√5)*{[(1+√5)/2]^n-[(1-√5)/2]^n}(n=1,2,3.....)
public class Fibonacci { public static int Fibonacci1(int n){ if(n==0||n==1) return 1; else{ return Fibonacci1(n-1)+Fibonacci1(n-2); } } public static int Fibonacci2(int n){ int f = 0,f0=1,f1=1; if(n==0||n==1) return 1; else{ for(int i=0;i<=(n-2);i++) { f=f0+f1; f0=f1; f1=f; } return f; } }public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=0;i<=12;i++){System.out.println(Fibonacci2(i));System.out.println(Fibonacci1(i));}}}
- 斐波那契数列数列计算
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- CloudStack + XenServer 部署 – CloudStack管理节点的安装和配置(3).
- linux sudo visudo
- 方兴未艾的社会计算
- python错误和异常
- 开发微信公众平台--新建新浪云sae部署服务器
- 斐波那契数列
- 命令行 sc delete 的使用(删除服务项)
- 标准输入输出
- 贴标签算法求连通域代码——opencv 实现
- qt UDP 本机多个客户端连接服务器
- Spring学习
- Demystifying iOS certificates and provisioning files
- 肯跌又出问题了
- 指针数组 与 数组指针