13世纪初,欧洲最好的数学家是斐波拉契(Fibonacci,又译菲波拉契);他写了一本叫做《算盘书》的著作,是当时欧洲最好的数学书。书中有许多有趣的数学题,其中最有趣的是下面这个题目:
“如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月里,又能开始生1对小兔子,假定在不发生死亡的情况下,由1对初生的兔子开始,1年后能繁殖成多少对兔子?”
斐波拉契把推算得到的头几个数摆成一串:
1,1,2,3,5,8……
这串数里隐含著一个规律:从第3个数起,后面的每个数都是它前面那两个数的和。而根据这个规律,只要作一些简单的加法,就能推算出以后各个月兔子的数目了。
按照这个规律推算出来的数,构成了数学史上一个有名的数列。大家都叫它“斐波拉契数列”。这个数列有许多奇特的的性质,例如,从第3个数起,每个数与它后面那个数的比值,都很接近于[url]0.618[/url],正好与大名鼎鼎的“黄金分割律”相吻合。人们还发现,连一些生物的生长规律,在某种假定下也可由这个数列来刻画呢。
Java实现:
java 代码
- public class Fibonacci {
-
-
-
-
- void fib() {
- int i = 1, k = 1;
-
- do {
- i = i + k;
- k = k + i;
- System.out.printf("%d\t%d\t", i, k);
- } while (k <= 32000);
- System.out.println();
- }
-
-
-
-
- void fib2() {
- int a[] = new int[20];
-
- a[0] = a[1] = 1;
- for (int k = 2; k < a.length; k++) {
- a[k] = a[k-1] + a[k-2];
- System.out.printf("%d\t", a[k]);
- }
- System.out.println();
- }
-
-
-
-
- int fib3(int i) {
- if (i < 1) {
- return 0;
- }
-
- if (i==1||i==2) {
- return 1;
- }
-
- return fib3(i - 1) + fib3(i - 2);
- }
- }
分享到:
相关推荐
Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE...
斐波那契数列递归与非递归算法(输入数列前N项)
计算数列和
//这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, ...
利用矩阵乘法和二进制快速计算菲波拉契数列第n项
//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f...
//这就是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System、out、println("第1个月得兔子对数: 1"); System、out、println("第2个月得兔子...
//这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1,...
//这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1,...
//这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, ...
最强黄金分割尺+ 斐波那契周期主图指标通达信指标公式源码.doc