美文网首页
用兔子的增长来讲迭代算法

用兔子的增长来讲迭代算法

作者: 大黑跟小白的日常 | 来源:发表于2019-07-10 11:45 被阅读0次

计算需求

题目:古典问题:有一对兔子,从出生后第3 个月起(满三个月即开始生)每个月都生一对兔子,小兔子长到第三个月时又开始每个月生一对小兔子,假如兔子都不死,问n个月之后共有多少对兔子?

具体代码如下

public static int f(int month) {
        if (month < 3) {
            return 1;
        }
        // 初始值 为 第三个月 时的 数据
        int m0 = 1, m1 = 0, m2 = 0, m3 = 1, sum = 0;
        for (int i = 4; i <= month; i++) {
            // 具体迭代规则
            m3 += m2;
            m2 = m1;
            m1 = m0;
            m0 = m3;
        }
        sum = m3 + m2 + m1 + m0;
        System.out.println("刚出生:" + m0);
        System.out.println("1个月了:" + m1);
        System.out.println("2个月了:" + m2);
        System.out.println("已经生育了:" + m3);
        return sum;
    }

还有一种算法–递归

这个月的兔子,等于上个月的兔子数加上这个月新生的兔子数;
而这个月新生兔子数,刚好又是前两个月已经存在兔子所生,所以等于前两个月的兔子数;
可以得到,f(x)=f(x-1)+f(x-2),x>2

相关文章

  • 用兔子的增长来讲迭代算法

    计算需求 题目:古典问题:有一对兔子,从出生后第3 个月起(满三个月即开始生)每个月都生一对兔子,小兔子长到第三个...

  • python编程(四级)3、递归与递推

    迭代法 迭代法解决问题的思路: 利用迭代算法解决问题,需要做好以下三个方面的工作: 确定迭代变量 在可以用迭代算法...

  • c++学习记录8(GeekBand)

    这周的课讲了将泛型算法。现在将泛型算法收集下,备用。 (1)泛型算法用迭代器来解决第一个要求:遍历容器。所有迭代器...

  • 斐波那契算法

    一、最优算法 迭代 一个迭代,时间复杂度O(N) 迭代的方式还有一种,就是用数组存起来,然后取array[n] 二...

  • 6. Spark数据分区示例:PageRank

    1. 算法简介 PageRank 是执行多次连接的一个迭代算法,因此它是RDD 分区操作的一个很好的用例。算法会维...

  • Flink DataSet 迭代

    机器学习和图计算应用,都会使用到迭代计算,Flink 通过在迭代算子中定义 Step 函数来实现迭代算法,迭代算法...

  • Boolan C++ 第九周 iterator_traits的

    当算法传入迭代器参数的时候,算法需要迭代器的一些类型数据,所以萃取器就代替迭代器对算法做出响应 实际的调用需要知道...

  • python_基于OpenCV库Adaboost的人脸识别

    以前用Matlab写神经网络的面部眼镜识别算法,研究算法逻辑,采集大量训练数据,迭代,计算各感知器的系数。。。相当...

  • 机器学习6:感知器算法python实现

    单样本感知器算法 单样本感知器算法仅读取一次样本,每读取一次样本,就是一次迭代。每次迭代时,只考虑用一个训练模式修...

  • 流迭代器

    算法是基于迭代器操作实现的。由于流迭代器支持迭代器操作,因此至少可在一些泛型算法上使用这类迭代器。 8 int m...

网友评论

      本文标题:用兔子的增长来讲迭代算法

      本文链接:https://www.haomeiwen.com/subject/mdwckctx.html