`
guanjh
  • 浏览: 233485 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

菲波拉契数列

阅读更多
13世纪初,欧洲最好的数学家是斐波拉契(Fibonacci,又译菲波拉契);他写了一本叫做《算盘书》的著作,是当时欧洲最好的数学书。书中有许多有趣的数学题,其中最有趣的是下面这个题目:
“如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月里,又能开始生1对小兔子,假定在不发生死亡的情况下,由1对初生的兔子开始,1年后能繁殖成多少对兔子?”
斐波拉契把推算得到的头几个数摆成一串:
1,1,2,3,5,8……
这串数里隐含著一个规律:从第3个数起,后面的每个数都是它前面那两个数的和。而根据这个规律,只要作一些简单的加法,就能推算出以后各个月兔子的数目了。
按照这个规律推算出来的数,构成了数学史上一个有名的数列。大家都叫它“斐波拉契数列”。这个数列有许多奇特的的性质,例如,从第3个数起,每个数与它后面那个数的比值,都很接近于[url]0.618[/url],正好与大名鼎鼎的“黄金分割律”相吻合。人们还发现,连一些生物的生长规律,在某种假定下也可由这个数列来刻画呢。

Java实现:

java 代码
 
  1. public class Fibonacci {  
  2.   
  3.     /** 
  4.      * 基于一般变量方式实现 
  5.      */  
  6.     void fib() {  
  7.         int i = 1, k = 1;  
  8.   
  9.         do {  
  10.             i = i + k;  
  11.             k = k + i;  
  12.             System.out.printf("%d\t%d\t", i, k);  
  13.         } while (k <= 32000);  
  14.         System.out.println();  
  15.     }  
  16.       
  17.     /** 
  18.      * 基于数组方式实现 
  19.      */  
  20.     void fib2() {  
  21.         int a[] = new int[20];  
  22.           
  23.         a[0] = a[1] = 1;  
  24.         for (int k = 2; k < a.length; k++) {  
  25.             a[k] = a[k-1] + a[k-2];  
  26.             System.out.printf("%d\t", a[k]);  
  27.         }  
  28.         System.out.println();  
  29.     }  
  30.       
  31.     /** 
  32.      * 基于递归的方式实现 
  33.      */  
  34.     int fib3(int i) {  
  35.         if (i < 1) {  
  36.             return 0;  
  37.         }  
  38.           
  39.         if (i==1||i==2) {  
  40.             return 1;  
  41.         }  
  42.           
  43.         return fib3(i - 1) + fib3(i - 2);  
  44.     }  
  45. }  
分享到:
评论

相关推荐

    Java SE程序 菲波拉契数列

    Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE程序 菲波拉契数列Java SE...

    菲波拉契数列的递归与非递归算法

    ### 菲波拉契数列的递归与非递归算法 #### 一、引言 斐波那契数列是一种经典的数学序列,在计算机科学领域有着广泛的应用,尤其是在算法设计方面。本篇文章将深入探讨斐波那契数列的递归与非递归算法实现方法,并...

    python计算菲波拉契数列和

    计算数列和

    竞赛java编程题50题(有答案)参考.pdf

    兔子问题是一个菲波拉契数列问题,菲波拉契数列是一个数列,其中每一项都是前两项的和(从第三项开始)。在Java中,我们可以使用循环来实现菲波拉契数列。 菲波拉契数列: 菲波拉契数列是一个数学概念,指的是一个...

    fib.rar_fib.c

    在编程领域,菲波拉契数列(Fibonacci Sequence)是一个非常经典的算法问题,它在计算机科学中有着广泛的应用,比如在动态规划、数据结构、算法优化等多个方面都有所涉及。本篇主要讨论如何利用矩阵乘法和二进制方法...

    最新JAVA编程题全集 50题及答案

    * 菲波拉契数列是一种经典的递归数列,满足以下公式:F(1) = F(2) = 1, F(n) = F(n-1) + F(n-2)。 * 在 JAVA 中,可以使用递归函数或循环来实现菲波拉契数列的计算。 * 本程序使用循环来计算菲波拉契数列,并打印出...

    非常经典的JAVA编程题全集(50题及答案

    1. 菲波拉契数列:菲波拉契数列是指一个数列,第一个数字是 0,第二个数字是 1,从第三个数字开始,每个数字是前面两个数字的和。JAVA 编程中可以使用循环语句来实现菲波拉契数列的生成。 2. 素数判断:判断一个数...

    JAVA编程题

    本节讲解了四个JAVA编程题的知识点,分别是菲波拉契数列问题、判断素数、水仙花数和分解质因数。 菲波拉契数列问题 菲波拉契数列是一个经典的数学问题,它是一种递归序列,每个数都是前两个数的和。菲波拉契数列的...

    500道java经典笔试题和标准答案.docx

    程序 1:菲波拉契数列 菲波拉契数列是一个经典的算法问题,描述了兔子繁殖的过程。该程序使用递归方式计算每个月的兔子对数。知识点: * 菲波拉契数列的定义和应用 * 递归算法的实现 * Java 中的基本数据类型和...

    最新JAVA编程题全集(50题及答案).doc

    题目描述了一个经典的兔子繁殖问题,实际上它是一个菲波拉契数列(Fibonacci sequence)问题。菲波拉契数列的特点是每个数是前两个数的和。程序中的`lianxi01`类展示了如何通过循环计算菲波拉契数列的前几个月的...

    java编程题

    程序1通过循环计算每个月的兔子对数,这是一种菲波拉契数列的应用,其中兔子数量在每个月的增加类似于菲波拉契数列的增长。 2. **素数判断**(程序2): - 程序2展示了如何判断一个数是否为素数。基本方法是检查从...

    最新JAVA编程题全集

    - 菲波拉契数列是数学中的一个重要概念,表示每个数是前两个数的和。在程序1中,兔子问题就是菲波拉契数列的一个应用。通过循环计算每个月的兔子数量,展示了一个简单的递推关系。 - 在Java中,可以使用for循环或...

    最新JAVA编程题全集(50题及答案)

    第一题,古典问题——兔子繁殖(菲波拉契数列问题)。这道题涉及到一个经典的数学模型,即兔子繁殖问题。根据题目描述,兔子从第三个月开始每个月生一对新兔子,而每对新兔子在第三个月后也会遵循同样的规律。这个...

    竞赛java编程题50题(有答案).doc

    1. 菲波拉契数列: 这个题目涉及的是菲波拉契数列,一个经典的数学概念。菲波拉契数列定义为:第一项和第二项都是1,从第三项开始,每一项都是前两项的和。在Java代码中,可以看到两个变量f1和f2分别代表前两项,...

    JAVA算法编程题全集(50题及答案)

    菲波拉契数列是一种经典的递归数列,由意大利数学家 Leonardo Fibonacci 在 1202 年发现。该数列的特点是,每个数都是前两个数的和,数列的前几个数是:0、1、1、2、3、5、8、13、21、…。 在这个程序中,我们使用...

    C语言算法期末复习(专升本资料)

    本资源汇集了C语言中常用的算法,包括闰年判断、菲波拉契数列、判断素数、最大公约数和最小公倍数、排序法和递归调用等六个方面的知识点。 1. 闰年判断:闰年是指能被4整除,但不能被100整除,或者能被400整除的...

    竞赛java编程题50题有答案.pdf

    1. 菲波拉契数列(Fibonacci Sequence): - 题目中提到的“古典问题:有一对兔子”实际上是一个经典的菲波拉契数列问题。菲波拉契数列是这样一个数列:0, 1, 1, 2, 3, 5, 8, ...,每个数字是前两个数字的和。在...

    最新JAVA编程题全集(60题*含答案)

    菲波拉契数列是一个经典的编程题目,用于学习递归和动态规划。程序1展示了如何使用递归计算菲波拉契数列的第`month`个月的兔子数量。递归函数`Fibonacci(month)`在基本情况(月数为1或2)返回1,否则返回前两个月的...

Global site tag (gtag.js) - Google Analytics