关于汉诺塔的一个问题。

\u5173\u4e8e\u6c49\u8bfa\u5854\u7a0b\u5e8f\u7684\u4e00\u4e2a\u95ee\u9898 \u9ad8\u624b\u8fdb

\u9012\u5f52\u662f\u4f7f\u7528\u5806\u6808\u5b9e\u73b0\u7684
\u5f53\u7a0b\u5e8f\u6267\u884c\u5230\u8fd9\u91cc\u65f6
\u4e0b\u4e00\u6761\u4f1a\u6267\u884cmove(one,three);
\u6267\u884c\u5b8c\u4f1a\u8fd4\u56de\u5230\uff081\uff09\u8fd9\u91cc\u6765\u7ee7\u7eed\u6267\u884c
move(one,three);
(1)
hanoi(n-1,two,one,three);
\u4e5f\u5c31\u662f\u8bf4move\u540e\u9762\u7684\u8fd8\u662f\u4f1a\u88ab\u6267\u884c\u7684
\u5f53\u8fdb\u5165\u4e0b\u4e00\u5c42\u9012\u5f52\u65f6
\u4ed6\u4f1a\u628a\u4e0b\u9762\u6ca1\u6267\u884c\u5b8c\u7684\u8fdb\u6808
\u63a5\u7740\u518d\u6b21\u8fdb\u5165\u9012\u5f52\u65f6\u518d\u8fdb\u6808
\u5f53\u4e00\u5c42\u9012\u5f52\u8fd4\u56de\u65f6\u5b83\u4f1a\u51fa\u4e00\u6b21\u6808
\u63a5\u7740\u8fd9\u6b21\u51fa\u6808\u53c8\u4f1a\u5bfc\u81f4\u4e00\u6b21\u8fd4\u56de
\u4ee5\u6b64\u7c7b\u63a8

\uff081\uff09\u9996\u5148\u7b2c\u4e00\u4e2a\u51fd\u6570\uff0c
void move_disk(char src, char dst)
{
printf("%c ====> %c",src,dst);
} \u7684\u4f5c\u7528\u662f\u8f93\u51fasrc\uff08\u4ece\u539f\u6765\u7684\u76d8\u5b50\uff09\u5230dst\uff08\u76ee\u7684\u76d8\uff09\uff0c\u8fd9\u6837\u4e00\u79cd\u79fb

\u52a8\u65b9\u6cd5\u3002\u8fd9\u4e2a\u5e94\u8be5\u4e0d\u96be\u7406\u89e3\uff0c\u56e0\u4e3a\u6c49\u8bfa\u5854\u7684\u4e09\u4e2a\u76d8\u5ea7\u662f\u7528\u4e09\u4e2a\u5b57\u7b26\u6807

\u8bb0\u7684\uff0c'A','B','C'\u3002
\uff082\uff09\u7b2c\u4e8c\u4e2a\u51fd\u6570\uff1a

void towers(int n, char src, char mid, char dst)
{
void move_disk(char,char);
if (n==1)
{
move_disk(src,dst);
return;
}
towers(n-1,src,dst,mid);
move_disk(src,dst); //\u8fd9\u91cc\u5c31\u8f93\u51fa\u79fb\u52a8\u8def\u7ebf\u4e86\uff01
towers(n-1,mid,src,dst);
}
\u9012\u5f52\u7ed3\u675f\u7684\u6761\u4ef6\u53ef\u4ee5\u79f0\u4e3a\u4e34\u754c\u6761\u4ef6\uff0c\u6216\u8005\u662f\u9600\u503c\u3002\u672c\u9898\u7684\u9600\u503c\u5c31

\u662fn=1\u4e86\uff0c\u56e0\u4e3a\u8981\u79fb\u52a8\u591a\u4e2a\u76d8\u5b50\u662f\u57fa\u4e8e\u79fb\u52a8\u4e00\u4e2a\u76d8\u5b50\u7684\u3002
\u4f7f\u7528\u9012\u5f52\u7684\u6761\u4ef6\u662f\uff1a\u539f\u95ee\u9898\u4e0e\u5176\u5b50\u95ee\u9898\u7684\u6c42\u89e3\u539f\u7406\u548c\u8fc7\u7a0b\u662f\u76f8\u540c

\u7684\u3002\u6bd4\u5982\u672c\u9898\uff0c\u79fb\u52a8n\u4e2a\u76d8\u5b50\u548c\u79fb\u52a8n-1\u4e2a\u76d8\u5b50\u7684\u539f\u7406\u662f\u76f8\u540c\u7684\uff0c\u6240\u4e0d

\u540c\u7684\u53ea\u662f\u521d\u59cb\u4f4d\u7f6e\u548c\u7ed3\u675f\u4f4d\u7f6e\u3002\u4e5f\u5c31\u662fsrc,dst,mid\u8fd9\u4e09\u4e2a\u76d8\u5ea7\u7684\u4f4d

\u7f6e\u3002

\u518d\u4ed4\u7ec6\u770b\u4e00\u4e0b\u9012\u5f52\u7684\u57fa\u672c\u539f\u7406\u90a3\u90e8\u5206\uff0c\u4ece\u57fa\u672c\u7684\u6c42n\uff01\u770b\u8d77\u3002\u6162

\u6162\u6765\u7406\u89e3\uff01o(\u2229_\u2229)o...

汉诺塔算法介绍:
把三根柱子按顺序排成“品”字型,把所有圆盘按从大到小的顺序放于柱子A上,根据圆盘数量来确定柱子排放的顺序:n若为偶数的话,顺时针方向依次摆放为:ABC;而n若为奇数的话,就按顺时针方向依次摆放为:ACB。
这样经过反复多次的测试,最后就可以按照规定完成汉诺塔的移动。因此很简单的,结果就是按照移动规则向一个方向移动金片:如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C。

用open GL 啊 研究生了吧

  • 鍏充簬娌冲唴濉旈棶棰鐨勫叕寮
    绛旓細姹夎濉旈棶棰锛堝張绉娌冲唴濉闂锛夋槸鏍规嵁涓涓紶璇村舰鎴鐨勪竴涓棶棰锛氭湁涓夋牴鏉嗗瓙A锛孊锛孋銆侫鏉嗕笂鏈塏涓(N>1)绌垮瓟鍦嗙洏锛岀洏鐨勫昂瀵哥敱涓嬪埌涓婁緷娆″彉灏忋傝姹傛寜涓嬪垪瑙勫垯灏嗘墍鏈夊渾鐩樼Щ鑷矯鏉嗭細1. 姣忔鍙兘绉诲姩涓涓渾鐩橈紱2. 澶х洏涓嶈兘鍙犲湪灏忕洏涓婇潰銆傛彁绀猴細鍙皢鍦嗙洏涓存椂缃簬B鏉嗭紝涔熷彲灏嗕粠A鏉嗙Щ鍑虹殑鍦嗙洏閲嶆柊绉诲洖A鏉...
  • 28 姹夎濉(Hanoi)闂涓涓鍏稿瀷鐨(???)闂-|||-棰-|||-A.鏌ユ壘-|||-B
    绛旓細鍥犳锛屼緷鎹笂娉曪紝鍙В鍐硁 -1涓鐩樺瓙浠嶢鏉嗙Щ鍒癇鏉(绗竴姝)鎴栦粠B鏉嗙Щ鍒癈鏉(绗笁姝)闂銆傜幇鍦紝闂鐢辩Щ鍔╪涓洏瀛愮殑鎿嶄綔杞寲涓虹Щ鍔╪-2涓洏瀛愮殑鎿嶄綔銆備緷鎹鍘熺悊锛屽眰灞傞掓帹锛屽嵆鍙皢鍘熼棶棰樿浆鍖栦负瑙e喅绉诲姩n -2銆乶 -3鈥 鈥 3銆2锛岀洿鍒扮Щ鍔1涓洏鐨勬搷浣滐紝鑰岀Щ鍔涓涓鐩樼殑鎿嶄綔鏄彲浠ョ洿鎺ュ畬鎴愮殑銆...
  • 姹夎濉旈棶棰,浣犵煡閬撴庝箞绉诲姩鍚
    绛旓細鏈変竴涓⒌濉锛屽鍐呮湁A銆丅銆丆涓夋牴鏌卞瓙锛孉鏌卞瓙涓婃湁N涓渾鐩橈紝鐩樺瓙澶у皬涓嶇瓑锛屽ぇ鐨勫湪涓嬶紝灏忕殑鍦ㄤ笂锛堝鍥撅級銆傛妸杩欎簺涓洏瀛愪粠A搴хЩ鍒癈搴э紝涓棿鍙互鍊熺敤B搴т絾姣忔鍙兘鍏佽绉诲姩涓涓洏瀛愶紝骞朵笖鍦ㄧЩ鍔ㄨ繃绋嬩腑锛3鏍规煴瀛愪笂鐨勫渾鐩樺缁堜繚鎸佸ぇ鐩樺湪涓嬶紝灏忕洏鍦ㄤ笂銆傝姹傜粰鍑虹Щ鍔ㄦ柟妗堬紝骞舵墦鍗版瘡绉诲姩涓姝ュ悗鐨勭姸鎬併侫鏌...
  • 姹夎濉旈棶棰
    绛旓細(n涓烘鏁帮紝t涓虹瀛愭暟)鏈夊洓涓瀛 鎵浠=2^4-1=15 閫塀 姹夎濉锛堝張绉娌冲唴濉锛闂鏄嵃搴鐨勪竴涓鍙よ佺殑浼犺銆傚紑澶╄緹鍦扮殑绁炲媰鎷夌帥鍦ㄤ竴涓簷閲岀暀涓嬩簡涓夋牴閲戝垰鐭崇殑妫掞紝绗竴鏍逛笂闈㈠鐫64涓渾鐨勯噾鐗囷紝鏈澶х殑涓涓湪搴曚笅锛屽叾浣欎竴涓瘮涓涓皬锛屼緷娆″彔涓婂幓锛屽簷閲岀殑浼楀儳涓嶅﹀湴鎶婂畠浠竴涓釜鍦颁粠杩欐牴妫掓惉鍒...
  • 鍏充簬姹夎濉旂殑涓涓棶棰銆
    绛旓細n鑻ヤ负鍋舵暟鐨勮瘽锛岄『鏃堕拡鏂瑰悜渚濇鎽嗘斁涓猴細ABC锛涜宯鑻ヤ负濂囨暟鐨勮瘽锛屽氨鎸夐『鏃堕拡鏂瑰悜渚濇鎽嗘斁涓猴細ACB銆傝繖鏍风粡杩囧弽澶嶅娆$殑娴嬭瘯锛屾渶鍚庡氨鍙互鎸夌収瑙勫畾瀹屾垚姹夎濉旂殑绉诲姩銆傚洜姝ゅ緢绠鍗曠殑锛岀粨鏋滃氨鏄寜鐓хЩ鍔ㄨ鍒欏悜涓涓鏂瑰悜绉诲姩閲戠墖锛氬3闃舵眽璇哄鐨勭Щ鍔細A鈫扖锛孉鈫払锛孋鈫払锛孉鈫扖锛孊鈫扐锛孊鈫扖锛孉鈫扖銆
  • 濡備綍瑙姹夎濉旈棶棰
    绛旓細姹夎濉鏄涓涓杩唬闂锛屾垜浠厛鍋囪x灞傛眽璇哄浠庣涓鏍规煴瀛愮Щ鍔ㄥ埌鏈鍚庝竴鏍规煴瀛愶紙鐩爣鏌卞瓙锛夌殑鏈蹇鏁版槸f(x)娆 鏄剧劧f(1)=1 f(2)=3 鐒跺悗鐪3灞傜殑锛屾垜浠彲浠ユ妸鏁翠釜杩囩▼鍒嗚В涓轰笁涓儴鍒 涓锛屾妸绗竴绗簩灞傜Щ鍔ㄥ埌涓棿鐨勬煴瀛愶紙杩囨浮鏌卞瓙锛夛紝鏈蹇玣(2)姝 浜岋紝鎶婄涓夊眰绉诲姩鍒版渶鍚庝竴鏍规煴瀛愶紙鐩爣鏌卞瓙锛夛紝鏈...
  • 姹夎濉涓洏鐨勭Щ鍔ㄦ鏁颁笌涓暟鐨勯棶棰鏄粈涔?
    绛旓細濡傛灉鏈塶涓洏鐨勮瘽锛岄偅涔堢Щ鍔ㄦ鏁颁负 2鐨刵娆℃柟-1\x0d\x0a鍏蜂綋璇佹槑濡備笅\x0d\x0a瀵逛簬涓涓鍗曠嫭鐨勫锛屽彲浠ヨ繘琛屼互涓嬫搷浣滐細\x0d\x0a1锛氬皢鏈涓嬫柟鐨濉旂殑涓婃柟鐨勬墍鏈夊绉诲姩鍒拌繃娓℃煴瀛怽x0d\x0a2锛氬皢搴曞绉诲姩鍒扮洰鏍囨煴瀛怽x0d\x0a3锛氬皢杩囨浮鏌卞瓙涓婄殑鍏朵粬濉旂Щ鍔ㄥ埌鐩爣鏌卞瓙\x0d\x0a鍙互褰掔撼鍑虹涓姝...
  • 鍏充簬姹夎濉旈棶棰,濡傛灉鑳戒竴娆℃ф惉璧皀-1,閭d负浠涔堜笉鑳戒竴娆℃ф惉璧版墍鏈...
    绛旓細鍥犱负姹夎濉旂殑瑙勫垯灏辨槸鍦ㄥ浜涓涓鐨勬儏鍐典笅涓嶅厑璁镐竴娆℃ф惉璧版墍鏈夌殑锛堣繖鏄熀鏈鍒欙紝鏄墠鎻愶紝涓嶈兘杩濆弽锛屽惁鍒欏氨涓嶆槸姹夎濉斾簡锛夛紝鍙厑璁镐竴娆℃惉涓涓紝鎵浠ヤ笉鏄竴娆℃ф惉璧般傝岃繖n-1 (鍏朵腑n>2)瑕佷粠A绉诲姩鍒癇锛屼粛鐒舵槸鏍规嵁瑙勫垯锛堜竴娆$Щ鍔ㄤ竴涓紝澶х殑涓嶈兘鏀惧湪灏忕殑涓婇潰锛夋潵绉诲姩銆
  • 姹夎濉旈棶棰鐢ㄤ粈涔堟柟娉曡В鍐?
    绛旓細鍏充簬姹夎濉旈棶棰瑙e喅鐨勪竴涓鏈涓昏鐨勮鐐硅涓猴紝瀹屾垚姹夎濉斾换鍔℃椂瑕佸鍦嗙洏鐨勭Щ鍔ㄩ『搴忚繘琛岄鍏堣鍒掑拰鍥為【鎬ц鍒掓椿鍔ㄣ傚綋闂鍛堢幇鍚庯紝鍦ㄥ紑濮嬬涓姝ョ殑绉诲姩涔嬪墠锛屽ぇ澶氭暟琚瘯閮戒細鏍规嵁璁惧畾濂界殑鐩爣鐘舵侊紝瀵瑰渾鐩樼殑绉诲姩椤哄簭杩涜棰勫厛璁″垝銆備互鍐冲畾鍦嗙洏鐨勭Щ鍔ㄩ『搴忥紝浣嗘槸杩欑璁″垝鑳藉姏鐨勪綔鐢ㄥ彲鑳戒細鍙楀埌闂闅惧害鐨勫奖鍝嶃
  • 涓鏂囧甫浣犲悆閫姹夎濉鍜屽叾鍙樺舰棰
    绛旓細姹夎濉锛涓涓缁忓吀鐨勯掑綊闂锛屽叾鏍稿績鎬濇兂鏄皢澶嶆潅闂杞寲涓虹畝鍗曠殑瀛愰棶棰樸傝繖涓皽棰樻秹鍙婁笁鏍规潌瀛怉銆丅銆丆鍜屼笉鍚屾暟閲忕殑鍦嗙洏锛岃鍒欒姹傚皢鎵鏈夊渾鐩樹粠A绉诲姩鍒癈锛岃繃绋嬩腑閬靛惊鐗瑰畾姝ラ銆傛渶绠鍗曠殑鎯呭喌鏄崟鐩橈紝鐩存帴绉昏嚦B銆傚浜庡弻鐩橈紝鍏堢Щ鍔ㄤ竴涓埌C锛屽啀灏嗗彟涓涓Щ鍥濧锛屾渶鍚庡皢涓婇潰鐨勭洏瀛愮Щ鍒癇銆傝屽浜庝笁涓洏瀛愶紝...
  • 扩展阅读:汉诺塔4层最快解法 ... 汉诺塔图解一步一图 ... 汉诺塔问题解决思路 ... 5层汉诺塔最快步骤 ... 8层汉诺塔15步解法 ... 汉诺塔递归树怎么画 ... 哥尼斯堡七桥问题 ... 五个汉诺塔步骤图 ... c++汉诺塔问题 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网