美文网首页
递归和汉诺塔问题

递归和汉诺塔问题

作者: 别点了填写不了昵称 | 来源:发表于2019-11-22 16:07 被阅读0次

递归

简介

递归 问题是数学中一种解决问题的思想,和递推刚好是相对的。我们说 递推 就是讲一个问题从正面入手一点一点的抽丝剥茧,而 递归 则是从敌后直捣黄龙。

例子

这里我创建了一个 Recursion 类,类中定义了 getRecursion 方法,使用 getRecursion 进行递归调用,实现从10递减到0的操作。

public class Recursion{

    public static void getRecursion(int i) {
        System.out.println(i);
        if (i > 0){
            i--;
            getRecursion(i);
        }
    }

    public static void main(String[] args) {
        int i = 10;
        getRecursion(i);
    }
}

汉诺塔问题

这里我不再讲解汉诺塔问题的描述,如果不清楚的可以自行去百度了解。

汉诺塔问题我们可以从三阶汉诺塔分析

汉诺塔

常见的三阶汉诺塔运用递归思想我们可以理解为三个子问题:

  1. A 我们将上面两层转移到 B

    从A到B问题
  2. A 我们将最下面一个元素转移到 C

    从A将最下面的转移到C
  3. B 我们将之间从 A 转移到 B 的两层转移到 C

    从B转移到C

Java代码实现

public class Recursion{

    /*
    * n 表示汉诺塔的阶数
    * a,b,c 代表三个杆子,其中 a 表示要转移的的杆子,b 代表中间转换的杆子,c 代表目标杆子
    * 总共分为三步
    **/
    public static void hanoi(int n,String a,String b,String c){
        if (n > 0){
            //第一步,将 A 中除最后一个都转移到 B
            hanoi(n-1,a,c,b);
            //将 A 的最下面一个转移到 C
            System.out.println(" move " a + " to " + c);
            //将 B 的所有元素转移到 C
            hanoi(n-1,b,a,c);
        }
    }

    public static void main(String[] args) {
        hanoi(3,"A","B","C");
    }
}

当然以后的更多层的汉诺塔我们同样也可以用同样的方法去解决。

相关文章

  • 递归和汉诺塔问题

    递归 简介 递归 问题是数学中一种解决问题的思想,和递推刚好是相对的。我们说 递推 就是讲一个问题从正面入手一点一...

  • 数据结构与算法-递归分治-汉诺塔思想

    折半查找算法的递归实现 思想:减少查找序列的长度,分而治之地进行关键字的查找 汉诺塔问题 汉诺塔是我们递归思想,分...

  • 数据结构算法之递归和栈结构

    递归 程序调用自身的编程技巧称为递归简单案例:n的阶乘 汉诺塔 汉诺塔问题描述:3个柱为a、b、c,圆盘最初在a柱...

  • Python 汉诺塔的实现

    汉诺塔的实现,是一个典型的递归问题,当然越是复杂的递归问题越是考验人的抽象思维; 哈哈哈,言归正传,汉诺塔问题如下...

  • 汉诺塔递归

    学习汉诺塔递归算法

  • python例子

    利用递归函数移动汉诺塔

  • 递归——汉诺塔问题

    我参考了两位大佬的代码,其中一位是日本的专业程序员。比较有意思的是他出的面向要考试的群体的那本书讲了这个,后来大概...

  • 复杂递归问题:汉诺塔

    复杂递归问题:汉诺塔 汉诺塔问题是法国数学家Edouard Lucas于1883年, 根据传说提出来的。 传说在一...

  • 算法分析与设计

    递归汉诺塔问题: https://blog.csdn.net/xb2355404/article/details/...

  • 递归之汉诺塔问题

    我的博客:递归之汉诺塔问题 一.起源: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的...

网友评论

      本文标题:递归和汉诺塔问题

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