相信大部分小伙伴都玩过王者荣耀,如果你是位精通诸葛亮的玩家,肯定会对标题里的那句台词很熟悉。
“完美的几何学者,以斐波那契数列分割战场。”
是的这就是诸葛亮黄金分割率这个皮肤的一句台词!这句话里隐藏着这个世界上最伟大的数列之一——斐波那契数列。
斐波那契数列:0,1,1,2,3,5,8,13,21,34,55,89,114...
这个数列从第3项开始,每一项都等于前两项之和
如果设an为该数列的第n项,n属于N,那么这句话可以写成如下形式:an=an-1 + an-2。
有趣的是,这样一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近 0.618)
所以它也被称为黄金数列!
斐波那契数列也被具象化为兔子问题
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的子对兔数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21…
很明显可以看出 an+2=an+an+1(当然小编我小时候没看出来。。)
看我如何用java代码来敲出这段数列上才艺!!!
import java.util.Scanner;
public class demo3 {
public static void main(String[] args) {
//有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
// 假如兔子都不死,问每个月的兔子对数为多少?
//程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
//1+1=2 1+2=3
//每个月兔子对数为n 月数为m an+2=an+an+1
Scanner sc=new Scanner( http:// System.in );
int n=sc.nextInt();
//根据输入的月份,来判断兔子对数
int n1=n+3;
// n1=n+3是防止数组越界
int []arr=new int[n1];
//进行初始化,给arr【0】arr【1】赋值
arr[0]=1;
arr[1]=1;
for(int i=0;i<=n;i++)
{
//带入之前得到的规律
arr[i+2]=arr[i]+arr[i+1];
arr[n]=arr[i];
}
System.out.println("第"+n+"个月有"+arr[n+1]+"对");
}
}