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...
### 菲波拉契数列的递归与非递归算法 #### 一、引言 斐波那契数列是一种经典的数学序列,在计算机科学领域有着广泛的应用,尤其是在算法设计方面。本篇文章将深入探讨斐波那契数列的递归与非递归算法实现方法,并...
计算数列和
兔子问题是一个菲波拉契数列问题,菲波拉契数列是一个数列,其中每一项都是前两项的和(从第三项开始)。在Java中,我们可以使用循环来实现菲波拉契数列。 菲波拉契数列: 菲波拉契数列是一个数学概念,指的是一个...
在编程领域,菲波拉契数列(Fibonacci Sequence)是一个非常经典的算法问题,它在计算机科学中有着广泛的应用,比如在动态规划、数据结构、算法优化等多个方面都有所涉及。本篇主要讨论如何利用矩阵乘法和二进制方法...
* 菲波拉契数列是一种经典的递归数列,满足以下公式:F(1) = F(2) = 1, F(n) = F(n-1) + F(n-2)。 * 在 JAVA 中,可以使用递归函数或循环来实现菲波拉契数列的计算。 * 本程序使用循环来计算菲波拉契数列,并打印出...
1. 菲波拉契数列:菲波拉契数列是指一个数列,第一个数字是 0,第二个数字是 1,从第三个数字开始,每个数字是前面两个数字的和。JAVA 编程中可以使用循环语句来实现菲波拉契数列的生成。 2. 素数判断:判断一个数...
本节讲解了四个JAVA编程题的知识点,分别是菲波拉契数列问题、判断素数、水仙花数和分解质因数。 菲波拉契数列问题 菲波拉契数列是一个经典的数学问题,它是一种递归序列,每个数都是前两个数的和。菲波拉契数列的...
程序 1:菲波拉契数列 菲波拉契数列是一个经典的算法问题,描述了兔子繁殖的过程。该程序使用递归方式计算每个月的兔子对数。知识点: * 菲波拉契数列的定义和应用 * 递归算法的实现 * Java 中的基本数据类型和...
题目描述了一个经典的兔子繁殖问题,实际上它是一个菲波拉契数列(Fibonacci sequence)问题。菲波拉契数列的特点是每个数是前两个数的和。程序中的`lianxi01`类展示了如何通过循环计算菲波拉契数列的前几个月的...
程序1通过循环计算每个月的兔子对数,这是一种菲波拉契数列的应用,其中兔子数量在每个月的增加类似于菲波拉契数列的增长。 2. **素数判断**(程序2): - 程序2展示了如何判断一个数是否为素数。基本方法是检查从...
- 菲波拉契数列是数学中的一个重要概念,表示每个数是前两个数的和。在程序1中,兔子问题就是菲波拉契数列的一个应用。通过循环计算每个月的兔子数量,展示了一个简单的递推关系。 - 在Java中,可以使用for循环或...
第一题,古典问题——兔子繁殖(菲波拉契数列问题)。这道题涉及到一个经典的数学模型,即兔子繁殖问题。根据题目描述,兔子从第三个月开始每个月生一对新兔子,而每对新兔子在第三个月后也会遵循同样的规律。这个...
1. 菲波拉契数列: 这个题目涉及的是菲波拉契数列,一个经典的数学概念。菲波拉契数列定义为:第一项和第二项都是1,从第三项开始,每一项都是前两项的和。在Java代码中,可以看到两个变量f1和f2分别代表前两项,...
菲波拉契数列是一种经典的递归数列,由意大利数学家 Leonardo Fibonacci 在 1202 年发现。该数列的特点是,每个数都是前两个数的和,数列的前几个数是:0、1、1、2、3、5、8、13、21、…。 在这个程序中,我们使用...
本资源汇集了C语言中常用的算法,包括闰年判断、菲波拉契数列、判断素数、最大公约数和最小公倍数、排序法和递归调用等六个方面的知识点。 1. 闰年判断:闰年是指能被4整除,但不能被100整除,或者能被400整除的...
1. 菲波拉契数列(Fibonacci Sequence): - 题目中提到的“古典问题:有一对兔子”实际上是一个经典的菲波拉契数列问题。菲波拉契数列是这样一个数列:0, 1, 1, 2, 3, 5, 8, ...,每个数字是前两个数字的和。在...
菲波拉契数列是一个经典的编程题目,用于学习递归和动态规划。程序1展示了如何使用递归计算菲波拉契数列的第`month`个月的兔子数量。递归函数`Fibonacci(month)`在基本情况(月数为1或2)返回1,否则返回前两个月的...