作者 wa007123456 (大笨羊)標題 [問卦] 河內塔是誰想出來的?時間 Fri Sep 15 00:40:10 2023
只有三根柱子的河內塔
若有64個盤子
需要 2^64 - 1 步才能搬完
如果一秒搬一塊
從宇宙開始搬到現在都還沒搬完
小弟還特別寫了程式模擬
public class Main
{
public static void main(String[] args)
{
ho(64,'A','B','C');
}
public static void ho(int n,char A,char B, char C){
if(n==1){
System.out.println(A +" to " + C);
}
else
{
ho(n-1,A,C,B);
System.out.println(A +" to " + C);
ho(n-1,B,A,C);
}
}
}
爽快地按下編譯執行後
A to C
B to C
B to A
C to A
C to B
A to B
C to A
B to C
......
..............
...................
結果到現在程式還在搬
所以小弟覺得柱子實在是太少了
所以那如果有4根柱子? 5根柱子? 或是6根柱子?
可以加速多少搬的時間?
要怎麼計算?
到底是誰想出這個搬死人的問題?
有卦嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 150.117.16.107 (臺灣)
※ 作者: wa007123456 2023-09-15 00:40:10
※ 文章代碼(AID): #1b0pTj2q (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1694709613.A.0B4.html
推 diabolica: 太陽防護手套1F 199.19.225.215 美國 09/15 00:40
→ link4517: 河內吧。上次被甲胖嚇到弄出來的2F 114.137.122.183 台灣 09/15 00:41
推 pt993526: 河內啊4F 223.139.74.3 台灣 09/15 00:41
噓 meokay: 作業自己寫5F 42.72.49.6 台灣 09/15 00:41
推 Johnyo: 猴子都會6F 218.173.30.233 台灣 09/15 00:41
推 ralfeistein: 你說什麼!!!!!!7F 36.233.157.100 台灣 09/15 00:42
推 dear133: 樓上(鄉民讚)作業自己寫、對!鄉民就8F 61.228.86.70 台灣 09/15 00:43
推 j32072: 嘻嘻不重要辣9F 118.166.199.61 台灣 09/15 00:43
→ dear133: 那麼沒個性還要都答對!10F 61.228.86.70 台灣 09/15 00:43
推 yang560831: 老柯自買味噌11F 101.139.225.94 台灣 09/15 00:44
推 HuangJC: 你用遞迴寫的對吧,有沒有想過不用遞迴遞迴是把你的負擔丟給堆疊..
假設堆疊很小,禁止遞迴,你又怎麼寫?這是個可以觀察出來的數學現象,不必遞迴12F 116.241.233.114 台灣 09/15 00:44
推 SWQLovE: 直接換柱就好了 搬個毛16F 1.161.176.223 台灣 09/15 00:47
對耶 @@
我終於懂了
回HuangJC 程式可能可以寫這樣 我是連迴圈都沒用到啦
public class Main{
public static void main(String[] args){
ho(64,'A','B','C');
}
public static void ho(int n,char A,char B, char C){
System.out.println(A+"換成"+C);
System.out.println("Hello World");
}
}
※ 編輯: wa007123456 (150.117.16.107 臺灣), 09/15/2023 00:54:56
推 milkBK: 當然是先寫出遞迴 再編一個故事來騙啊17F 114.32.129.203 台灣 09/15 00:52
推 jasonking3c: 笑死 111交大資工碩班入學考的離散就出這題 問你多個柱子的步數規律
答案就是柱子>3沒有公式解18F 218.35.155.143 台灣 09/15 00:55
推 heavensun: 直接換柱就好了 我懂21F 125.228.79.97 台灣 09/15 00:57
--