博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汉诺塔问题求解
阅读量:2232 次
发布时间:2019-05-09

本文共 789 字,大约阅读时间需要 2 分钟。

                        汉诺塔问题求解

问题描写叙述:A。B,C三个柱子,当中A插着n个盘子从上到下依照小到大放,尝试以B盘子为中介,每次移一次,将A中的盘子从上到下依照小到大插;
算法:n个盘子全放在A上面。分为两步走:将前面(n-1)个盘子所有放到B上面,然后将第n个盘子放到C中;
                                      这样子B中就有(n-1)个盘子。再以A为中介。所有放到C中。

 数学建模:
      设n个盘子须要放An次,
      An=A(n-1)+1+A(n-1);n=a,An=1;

     通过简单的迭代,就可以求出An=2^n-1;

程序实现:
    hanoi(n,A,B,C)
      =Move(A,C)  if(n=1)
       hanoi(n-1,A,C,B);
       Move(A,C)
       hanoi(n-1,B,A,C)
       
       

#include "stdafx.h"#include "iostream" using namespace std; void  move(char A,char B) { //	char A,B; 	printf("%c-------%c\n",A,B); }    void hanoi(int n,char A,char B,char C)  { // 	int n; //	char A,B,C;  	if(n==1)  		move(A,C);  	else  		{  			hanoi(n-1,A,C,B);  			move(A,C);  			hanoi(n-1,B,A,C);  			}  }    int main()  {  int n;  cin>>n; // char A,B,C;  hanoi(n,'A','B','C');   while(1);  return 0;	  }
     执行代码例如以下:

转载于:https://www.cnblogs.com/ljbguanli/p/6871683.html

你可能感兴趣的文章
轻松看懂机器学习十大常用算法
查看>>
一个框架解决几乎所有机器学习问题
查看>>
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
决策树的python实现
查看>>
了解 Sklearn 的数据集
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>
详解循环神经网络(Recurrent Neural Network)
查看>>
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>