【初期状態】 A B C ┏┓ ┏┓ ┏┓ ┃┃ ┃┃ ┃┃ ┏┻┻┓ ┃┃ ┃┃ ┏┻━━┻┓ ┃┃ ┃┃ ┏┻━━━━┻┓ ┃┃ ┃┃ ━━┻━━━━━━┻━━━┻┻━━━━━━┻┻━━━━ 【目標】 A B C ┏┓ ┏┓ ┏┓ ┃┃ ┃┃ ┃┃ ┃┃ ┃┃ ┏┻┻┓ ┃┃ ┃┃ ┏┻━━┻┓ ┃┃ ┃┃ ┏┻━━━━┻┓ ━━━━━┻┻━━━━━━┻┻━━━┻━━━━━━┻━━
今日のトピック
|
L2:=append(car(L1),L2); L1:=cdr(L1)
if size(car(L1))<size(car(L2)) ∨ car(L2)=[] then move(L1,L2); % i≠j;L1:=mem(S,i);L2:=mem(S,j), ただしS=[左,中,右]
【初期状態】 A B C ┏┓ ┏┓ ┏┓ ┃┃ ┃┃ ┃┃ ┏┻┻┓ ┃┃ ┃┃ ┏┻━━┻┓ ┃┃ ┃┃ ┏┻━━━━┻┓ ┃┃ ┃┃ ━━┻━━━━━━┻━━━┻┻━━━━━━┻┻━━━━ 【n-1枚】 A B C ┏┓ ┏┓ ┏┓ ┃┃ ┃┃ ┃┃ ┃┃ ┃┃ ┃┃ ┃┃ ┏┻┻┓ ┃┃ ┏━━┻┻━━┓ ┏┻━━┻┓ ┃┃ ━━┻━━━━━━┻━┻━━━━┻━━━━┻┻━━━━
P(n,1,3); if n=0 then success; P(n-1,1,2); P(1,1,3); P(n-1,2,3); success:
T0 = 0 TN = TN-1 + 1 + TN-1 ただし N>0 = 2TN-1 + 1 ただし N>0 Sn=Tn+1と書き直すと S0 = 1 Sn = (2Tn-1 + 1) + 1 = 2(Tn-1 + 1) = 2Sn-1 = 2n したがって Tn = 2n - 1 @n=1のときAからCに移動する回数は21-1=1 An=kのときの最少回数を2k-1とする。n=k+1のとき a) k枚をAからBに移す最少回数は2k-1 b) 一番大きな円盤をAからCに移す回数は1回 c) Bのk枚をCに移す最少回数は2k-1回 したがってk+1枚の円盤をAからCに移す最少回数は (2k - 1) + 1 + (2k - 1) = 2k+1 - 1
1段 | 1回 | (1s) |
2段 | 3回 | (3s) |
3段 | 7回 | (7s) |
4段 | 15回 | (15s) |
5段 | 31回 | (31s) |
6段 | 63回 | (1m03s) |
7段 | 127回 | (2m07s) |
8段 | 255回 | (4m15s) |
9段 | 511回 | (8m31s) |
10段 | 1,023回 | (17m03s) |
11段 | 2,047回 | (34m07s) |
12段 | 4,095回 | (1h08m15s) |
13段 | 8,191回 | (2h16m31s) |
14段 | 16,383回 | (4h33m03s) |
15段 | 32,767回 | (9h06m07s) |
16段 | 65,535回 | (18h12m15s) |
17段 | 13,1071回 | (1日12h24m31s) |
18段 | 262,143回 | (3日00h49m03s) |
19段 | 524,287回 | (6日01h38m07s) |
20段 | 1,048,575回 | (12日03h16m15s) |
21段 | 2,097,151回 | (24日06h32m31s) |
22段 | 4,194,303回 | (48日13h04m03s) |
23段 | 8,388,607回 | (97日02h10m07s) |
24段 | 16,777,215回 | (194日04h20m15s) |
25段 | 33,554,431回 | (1年23日08h40m31s) |
26段 | 67,108,863回 | (約2年46日17h) |
27段 | 134,217,727回 | (約4年3ヶ月) |
28段 | 268,435,455回 | (約8.5年) |
29段 | 536,870,911回 | (約17年) |
30段 | 1,073,741,823回 | (約34年) |
31段 | 2,147,483,647回 | (約68年) |
32段 | 4,294,967,295回 | (約136年) |