美文网首页
基础 4.归纳法与递归

基础 4.归纳法与递归

作者: 胖达_4b7e | 来源:发表于2018-12-25 22:04 被阅读0次

归纳法步骤:

1.观察(猜)得到一个规律
2.证明n=1成立
3.证明kn成立的话,kn+1也成立

猜到规律,证明就可以用了, 关键是要猜得到这个规律

和递归的逻辑是一样的

以棋盘放麦粒为例证明等比数列公式 在63前都是对的:

class Result {
    public long wheatNum = 0;  // 当前格的麦粒数
    public long wheatTotalNum = 0;  // 目前为止麦粒的总数
}

public class Lesson4_2 {

    /**
     * @Description: 使用函数的递归(嵌套)调用,进行数学归纳法证明
     * @param k- 放到第几格,result- 保存当前格子的麦粒数和麦粒总数
     * @return boolean- 放到第 k 格时是否成立
     */

    public static boolean prove(int k, Result result) {

        // 证明 n = 1 时,命题是否成立
        if (k == 1) {
            if ((Math.pow(2, 1) - 1) == 1) {
                result.wheatNum = 1;
                result.wheatTotalNum = 1;
                return true;
            } else {
                return false;
            }
        }
        // 如果 n = (k-1) 时命题成立,证明 n = k 时命题是否成立
        else {

            boolean proveOfPreviousOne = prove(k - 1, result);
            result.wheatNum *= 2;
            result.wheatTotalNum += result.wheatNum;
            boolean proveOfCurrentOne = false;
            if (result.wheatTotalNum == (Math.pow(2, k) - 1)) {
                proveOfCurrentOne = true;
            }

            return proveOfPreviousOne && proveOfCurrentOne;

        }

    }

    public static void main(String[] args) {

        int grid = 63;

        Result result = new Result();
        System.out.println(Lesson4_2.prove(grid, result));

    }
}

不同的是从大往小了推, 逆向递推
可以看到, 其实递归中 实际计算也是从0开始 和循环一样

相关文章

  • 基础 4.归纳法与递归

    归纳法步骤: 1.观察(猜)得到一个规律2.证明n=1成立3.证明kn成立的话,kn+1也成立 猜到规律,证明就可...

  • 学习python3的野路子——递归

    递归[1]:直观的感受是与归纳法相似。必须要有的两个部分:递归基、递归规则。 递归基保证递归能返回结果。 递归规则...

  • 24点问题-Swift

    数学归纳法递归回溯

  • 数据结构与算法分析(1)——基础知识

    M小白的学习笔记 17/11/30 1.数学基础 指数对数幂的运算 直接证明、反证法、数学归纳法 递归与迭代 2....

  • 数学归纳法

    重温数学归纳法时,发现这玩意儿跟递归就像孪生兄弟一样。 数学归纳法,更像是递归的文字表述。 当数学归纳法通过证明基...

  • 递归

    在数学归纳法那篇文章里用递归,递归的函数值返回过程与基于循环的迭代看起来似乎一样。那么为什么不用循环来做呢...

  • 快速理解递归

    *数学归纳法理解 斐波那契数列 其他理解 写出递归函数也就是要处理好递归的3个主要的点:a)出口条件,即递归“什么...

  • 递归算法

    一、说明递归算法就是直接或者间接调用自身的算法,递归函数也如此。递归的数学模型起始就是归纳法。解决一个问题,转化为...

  • 数据结构基础-递归和循环技巧

    为什么要用递归 递归是从数学领域的数学归纳法借鉴过来的一种技术。递归代码通常比迭代代码更加简洁易懂。当任务能够被相...

  • 07《算法入门教程》递归算法

    1. 前言 本节内容是递归算法系列之一:递归的介绍,主要介绍了递归的定义,选择了数学归纳法这一数学模型帮助大家可以...

网友评论

      本文标题:基础 4.归纳法与递归

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