1.河内之塔

2024-01-01 10:09
文章标签 之塔 河内

本文主要是介绍1.河内之塔,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.河内之塔

说明河内之塔(Towersof Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当盘子全数搬运完毕之时,此塔将毁损,而也就是世界末日来临之时。

解法如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它直接搬至C,当有两个盘子,就将B当作辅助柱。如果盘数超过2个,将第三个以下的盘子遮起来,就很简单了,每次处理两个盘子,也就是:A->B、A ->C、B->C这三个步骤,而被遮住的部份,其实就是进入程式的递回处理。事实上,若有n个盘子,则移动完毕所需之次数为2^n - 1,所以当盘数为64时,则所需次数为:264- 1 =18446744073709551615为5.05390248594782e+16年,也就是约5000世纪,如果对这数字没什幺概念,就假设每秒钟搬一个盘子好了,也要约5850亿年左右。

#include "stdafx.h"#include <stdio.h>
void hanoi(int n, char A, char B, char C) {if(n == 1) {printf("Move sheet %d from %c to %c\n", n, A, C);}else {hanoi(n-1, A, C, B);printf("Move sheet %d from %c to %c\n", n, A, C);hanoi(n-1, B, A, C);}
}int main() {int n;printf("请输入盘数:");scanf("%d", &n);hanoi(n, 'A', 'B', 'C');return 0;
} 


这篇关于1.河内之塔的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/558930

相关文章

河内塔, 平面上的直线和约瑟夫问题的公式列表和出处

1. 河内塔(汉诺塔)     概念:http://zh.wikipedia.org/wiki/%E6%B1%89%E8%AF%BA%E5%A1%94     定义:n表示圆盘数;T(n)表示n个河内塔需要的最少搬运次数。     递推公式:T(n) = 2*T(n-1) + 1     通项公式:T(n) = (2^n) - 1

CCF-B KR 2024五一截稿 探索越南之魅,河内盛会不容错过

会议之眼 快讯 第21届KR(International Conference on Principles of Knowledge Representation and Reasoning)即国际知识表示与推理原理会议会议将于 2024年 11月2日-8日在越南河内举行! 知识表示和推理(KR)是人工智能(AI)中一个重要且不断发展的分支。它的核心思想是知识可以以明确的声明形式表示,这样专门

【算法每日一练]-动态规划 (保姆级教程 篇16) #纸带 #围栏木桩 #四柱河内塔

目录 今日知识点: 计算最长子序列的方案个数,类似最短路径个数问题 四柱河内塔问题:dp[i]=min{ (p[i-k]+f[k])+dp[i-k] }  纸带 围栏木桩  四柱河内塔                   纸带 思路: 我们先设置dp[i]表示从i到n的方案数。 那么减法操作中:i可以移动到[1,i-1]中的任意一个格子。反过来可以认为:i可以从i

永恒之塔最新服务器2020,永恒之塔2020新服

永恒之塔2020新服是一款魔幻大陆冒险战斗类角色扮演手游,在永恒之塔2020新服中拥有极其真实高清的画质,玩家可以在游戏中自由自在的探索游戏地图,更有超多冒险竞技模式等你探索,大量的资源以及强化装备在副本模式中,击败那些强大的怪物获得强大的武器吧。 永恒之塔2020新服特色: 1、在这片被暗黑所侵袭的世界里成就属于自己的勇者之名,不断征战成长直至巅峰; 2、自由飞行的感觉简直令人吃惊,微缩视距

比特币(Bitcoin)——千层之塔的起与落

在数字世界的深处,比特币像一个神秘的幽灵一样游荡。它是一种全球性的、点对点的、无需中间人的数字货币,其概念最初由一个或一组使用化名“Satoshi Nakamoto”的人在2008年提出。在过去的几年里,比特币的价值已经从几乎无价上涨到了惊人的高度,然后又在波动中寻找平衡。那么,这个神秘数字货币的前世今生,以及它为什么能涨到如此高的价格呢? 前世:比特币的起源与基本原理 比特币的起源充

【神印王座】永恒之塔秘密透露,林鑫告白李馨,皓晨采儿甜蜜接吻

Hello,小伙伴们,我是拾荒君。 《神印王座》第83集如期而至,带来了令人期待已久的更新。与众多热情的观众一样,拾荒君一得到更新消息,便急不可耐地观赏起来。这一集中,龙皓晨随着月魔宫的月夜商队成功抵达联盟,并顺利交付了王级任务。他的英勇表现得到了联盟的认可,但更重要的消息还在后头。 龙皓晨向联盟盟主透露了悲啸洞穴中关于永恒之塔的秘密,这个塔主伊莱克斯的恐怖存在,他曾经以一己之力摧毁人类最

Tower Duel(决斗之塔)游戏内测,手快进。

Cocos海外社区一个叫做Forest Ring Games Team的游戏团队,基于Cocos2d-x开发了一款十分酷炫的竞技类游戏——Tower Duel(决斗之塔)。目前该款游戏尚处于内测阶段,小哥慷慨的将内测版放在英文社区以便福利更多Cocos开发者。多层次的升级系统、有趣的背景故事再加上动感十足的UI界面,确定不进来撸一发吗? 团队是在大概半月前发布的Beta版,目前支持iOS和An

预言世界末日来临的算法,C语言经典算法之河内之塔

河内之塔   说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所