有一个很有名的数学逻辑题叫做不死神兔问题。有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?

内容

  • 1.java编写不死神兔代码
  • 2.有一个很有名的数学逻辑题叫做不死神兔问题。有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
  • 3.知识扩展-转自百度百科
  • 4.分析
  • 代码

1.java编写不死神兔代码

2.有一个很有名的数学逻辑题叫做不死神兔问题。有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?

3.知识扩展-转自百度百科

百度百科:黄金分割数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

4.分析

    // 月份       兔子对数                   生的兔子编号
    //  1           1                       原有兔子编号a
    //  2           1                       原有兔子编号a
    //  3           2                       原有兔子a,生了兔子b(5月开始生)
    //  4           3                       原有兔子a,生了兔子b(5月开始生),又生了兔子c(6月开始生)
    //  5           5                       原有兔子a,生了兔子b(5月开始生),又生了兔子c(6月开始生),又生了兔子d(7月开始生)
    //                                      原有兔子b生了兔子b1(7月开始生)
    //  6           8                       原有兔子a,生了兔子b(5月开始生),又生了兔子c(6月开始生),又生了兔子d(7月开始生),又生了兔子e(8月开始生)
    //                                      原有兔子b生了兔子b1(7月开始生),原有兔子b生了兔子b2(8月开始生)
    //                                      原有兔子c生了兔子c1(8月开始生)
    //  7           13                      原有兔子a,生了兔子b(5月开始生),又生了兔子c(6月开始生),又生了兔子d(7月开始生),又生了兔子e(8月开始生),生了兔子f(9月开始生)
    //                                      原有兔子b生了兔子b1(7月开始生),原有兔子b生了兔子b2(8月开始生),原有兔子b生了兔子b3(9月开始生)
    //                                      原有兔子b1生了兔子b11(9月开始生)
    //                                      原有兔子c生了兔子c1(8月开始生),原有兔子c生了兔子c2(9月开始生)
    //                                      原有兔子d生了兔子d1(9月开始生)
	//规律:一月份的兔子数+二月份的兔子数=三月份的兔子数
	//      二月份的兔子数+三月份的兔子数=四月份的兔子数
	//      三月份的兔子数+四月份的兔子数=五月份的兔子数
	//  核心代码:arr[i] = arr[i-2]+arr[i-1];其中i+1=月份

代码

    public static void main(String[] args) {
        int arr[] = new int[20];//创建数组,数组的index+1就是月份,数组里面的值就是兔子对数
        arr[0] = 1;//已知
        arr[1] = 1;//已知
        for (int i = 2; i < arr.length; i++) {
            arr[i] = arr[i-2]+arr[i-1];
        }
        System.out.println("二十个月之后兔子对数:"+ arr[19]+"对");
    }

有一个很有名的数学逻辑题叫做不死神兔问题。有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?_第1张图片

你可能感兴趣的:(有一个很有名的数学逻辑题叫做不死神兔问题。有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?)