← 研究ノート一覧へ
数列(数学B)

お皿洗いは超難問!?

〜ハノイの塔と階差数列〜

このノートで考えること

シンクの中に重ねて置かれたお皿。スポンジで洗って空いているスペースにおいていきますが,スペースも限られているので洗ったお皿もまた重ねておいていきます。この動きを見るとハノイの塔を思い出します。お皿の場合は同じお皿や逆に重ねても良いものもあるのでハノイの塔よりも条件がゆるくなります。それではお皿洗いには何回のお皿移動が生じるのでしょう。

シンクの中に重ねて置かれたお皿とスポンジ

大中小のお皿が重なったシンク。1枚ずつしか持てず,大きい皿を小さい皿の上には置けない——この「お皿の移し替え」は,パズルとして知られるハノイの塔とぴったり同じ構造をしている。ここでは標準的なハノイの塔の漸化式と解,同じサイズの皿をまとめた「変則ハノイ」の一般式,そしてスペースの数による手数の違いを順に確かめていく。

ハノイの塔の基本設定

ハノイの塔は,3本の棒(スペース)と大きさの異なる何枚かの円盤でできたパズル。はじめは1本の棒に,大きい円盤が下・小さい円盤が上の順で積まれている。これを,次のルールを守って別の棒へまるごと移す。

3本の棒(A・B・C)と,棒Aに積まれた円盤
3本の棒(A・B・C)と,棒Aに積まれた円盤。大きい円盤の上に小さい円盤が乗る。

ルール(3つ):

  1. 一度に動かせるのは,どれかの棒の一番上の円盤1枚だけ。
  2. 円盤を置けるのは3本の棒(A・B・C)のいずれか。
  3. 小さい円盤の上に大きい円盤を載せてはいけない。

目標:棒Aに積まれた nn 枚の円盤を,ルールを守って全て棒Cへ移す。

標準ハノイの塔

具体的な手数

たとえば円盤が3枚のとき,最短の手順は次のようになる。

3枚のハノイの塔を解く8つの状態(7手で完成)
3枚を棒Aから棒Cへ移す最短手順。全部で7手かかる。

3枚なら7手。同じように数えていくと,手数は T(n)=1,3,7,15,31,63,T(n) = 1, 3, 7, 15, 31, 63, \ldots となる。

漸化式の導出

nn 枚の皿を動かす最適手順は次の3ステップに分解できる:

  1. 上の n1n-1 枚を真ん中に退避させる (T(n1)T(n-1) 手)
  2. 一番下の大皿1枚を洗って右に移す (1手)
  3. n1n-1 枚を真ん中から右に移す (T(n1)T(n-1) 手)
漸化式の3ステップ分解:n−1枚を補助へ→一番下を目標へ→n−1枚を目標へ
3ステップへの分解。上の n−1 枚をいったん補助の棒へ動かし,一番下を目標へ動かし,もう一度 n−1 枚を上に重ねる。

したがって次の漸化式が成り立つ:

T(n)=2T(n1)+1,T(1)=1T(n) = 2T(n-1) + 1, \quad T(1) = 1

補足(最適性):ステップ1と3はそれぞれ独立したハノイ問題であり,帰納法により T(n1)T(n-1) が各ステップの最小手数であることが示せる。よってこの分解は最適戦略を与える。

漸化式の解

変換 U(n)=T(n)+1U(n) = T(n) + 1 を導入する。

T(n)=2T(n1)+1    T(n)+1=2(T(n1)+1)T(n) = 2T(n-1) + 1 \implies T(n) + 1 = 2(T(n-1) + 1)

すなわち U(n)=2U(n1)U(n) = 2U(n-1)。初期値は U(1)=T(1)+1=2U(1) = T(1) + 1 = 2

{U(n)}\{U(n)\} は初項 22,公比 22 の等比数列なので,

U(n)=22n1=2nU(n) = 2 \cdot 2^{n-1} = 2^n

T(n)=U(n)1T(n) = U(n) - 1 より,

T(n)=2n1\boxed{T(n) = 2^n - 1}

検証

T(1)=1,T(2)=3,T(3)=7,T(4)=15,T(5)=31T(1)=1,\quad T(2)=3,\quad T(3)=7,\quad T(4)=15,\quad T(5)=31 \quad \checkmark
ミニゲーム自分で動かしてみる(通常のハノイ)
皿の枚数 4

スペースをクリックして一番上のお皿を持ち上げ,別のスペースへ移します。大きい皿を小さい皿に載せることはできません。最小手数(2ⁿ−1)でのクリアを目指してみてください。

枚数に応じた手数

nn(枚)T(n)=2n1T(n) = 2^n - 1T(n)T(n1)T(n) - T(n-1)
11
232
374
4158
53116
66332
712764
8255128
9511256
101023512

差の列 T(n)T(n1)T(n) - T(n-1)

T(n)T(n1)=(2n1)(2n11)=2n2n1=2n1T(n) - T(n-1) = (2^n - 1) - (2^{n-1} - 1) = 2^n - 2^{n-1} = 2^{n-1}

差の列 2,4,8,16,2, 4, 8, 16, \ldots は初項 22,公比 22 の等比数列である。数列の nn 項目と (n1)(n-1) 項目の差が階差数列と呼ばれる。

ハノイの塔の手数 1, 3, 7, 15, 31 と,その差 +2, +4, +8, +16
手数の列 1, 3, 7, 15, 31 …。となり合う項の差が +2, +4, +8, +16 と,2倍ずつ増えていく。

変則ハノイの塔(グループ化)

設定:同じサイズの皿がある場合

実際の食器洗いでは,同じサイズの皿が複数枚あることが多い。同じサイズなら重ねても安定するので,ルールを次のように緩める:

緩めたルール:同じサイズの皿どうしは上下を問わず重ねてよい。

すると,同じサイズの皿は1つのグループとして一体に扱える。

グループ化の定式化

kk 種類のサイズの皿があり,上(最小サイズ)から数えて ii 番目のグループに gig_i 枚の皿があるとする(i=1,2,,ki = 1, 2, \ldots, k)。すなわち g1g_1 が最上段(最小),gkg_k が最下段(最大)である。総枚数は N=g1+g2++gkN = g_1 + g_2 + \cdots + g_k 枚。

重要:同じグループ内の皿は同サイズなので一体として動かせる。「gig_i 枚を移動する」のに必要な手数は gig_i 手(1枚ずつ gig_i 回)。

同じサイズの皿をまとめたグループ。小 g1,中 g2,大 g3
同じサイズの皿を1つのグループにまとめる。上から小(g1)・中(g2)・大(g3)。

変則ハノイの漸化式

kk 段の塔(グループ数 kk)を動かす最小手数 T(k)T(k) を求める。手順は標準ハノイと同じ3ステップ:

  1. k1k-1 段を真ん中に退避 (T(k1)T(k-1) 手)
  2. 一番下のグループ gkg_k 枚を洗って右に移す (gkg_k 手)
  3. k1k-1 段を真ん中から右へ (T(k1)T(k-1) 手)
T(k)=2T(k1)+gk,T(1)=g1T(k) = 2T(k-1) + g_k, \quad T(1) = g_1
変則ハノイの漸化式の図解:Tk = Tk-1 + gk + Tk-1
手順の分解:上の k−1 段を動かし(Tₖ₋₁),k 段目を動かし(gₖ),もう一度 k−1 段を上に戻す(Tₖ₋₁)。

閉じた式の導出

漸化式を繰り返し展開する。

T(k)=2T(k1)+gk=2(2T(k2)+gk1)+gk=22T(k2)+2gk1+gk=22(2T(k3)+gk2)+2gk1+gk=23T(k3)+22gk2+2gk1+gk=2k1T(1)+2k2g2+2k3g3++20gk=2k1g1+2k2g2++20gk\begin{aligned} T(k) &= 2T(k-1) + g_k \\ &= 2\bigl(2T(k-2) + g_{k-1}\bigr) + g_k \\ &= 2^2 T(k-2) + 2 g_{k-1} + g_k \\ &= 2^2\bigl(2T(k-3) + g_{k-2}\bigr) + 2 g_{k-1} + g_k \\ &= 2^3 T(k-3) + 2^2 g_{k-2} + 2 g_{k-1} + g_k \\ &\quad \vdots \\ &= 2^{k-1} T(1) + 2^{k-2} g_2 + 2^{k-3} g_3 + \cdots + 2^0 g_k \\ &= 2^{k-1} g_1 + 2^{k-2} g_2 + \cdots + 2^0 g_k \end{aligned}

よって:

T=i=1kgi2ki=g12k1+g22k2++gk20\boxed{T = \sum_{i=1}^{k} g_i \cdot 2^{k-i} = g_1 \cdot 2^{k-1} + g_2 \cdot 2^{k-2} + \cdots + g_k \cdot 2^0}

重みの解釈ii 番目のグループの重みは 2ki2^{k-i}。最上段(i=1i=1)の重みが最大 2k12^{k-1},最下段(i=ki=k)の重みが最小 11。上のグループほど退避・戻しの回数が多いため,重みが指数的に大きくなる。

標準ハノイとの整合性確認

全グループが1枚の場合(すべての iigi=1g_i = 1k=nk=n):

T=12n1+12n2++120=2n1+2n2++1=1(2n1)21=2n1\begin{aligned} T &= 1 \cdot 2^{n-1} + 1 \cdot 2^{n-2} + \cdots + 1 \cdot 2^0 \\ &= 2^{n-1} + 2^{n-2} + \cdots + 1 \\ &= \frac{1 \cdot (2^n - 1)}{2 - 1} = 2^n - 1 \quad \checkmark \end{aligned}

標準ハノイの式 T(n)=2n1T(n) = 2^n - 1 と一致する。

具体例の計算と比較表

設定:7枚の皿,3種類のサイズ(k = 3)

上から順に g1g_1(小),g2g_2(中),g3g_3(大)とする。重みは 231=42^{3-1} = 4(小,g1g_1),232=22^{3-2} = 2(中,g2g_2),233=12^{3-3} = 1(大,g3g_3)。

一般式(k=3k=3 の場合):

T=g14+g22+g31T = g_1 \cdot 4 + g_2 \cdot 2 + g_3 \cdot 1

注意:最上段(小)の重みが最大。上の皿ほど退避・戻しの操作が繰り返されるため,移動回数への寄与が大きい。

曜日ごとの構成と手数

7枚の皿を,その日の組み合わせ(小・中・大,日によっては特大も)で並べたときの手数。

曜日特大手数 TT
月曜42121
火曜22315
水曜222129
木曜51123
金曜32218

月曜の計算詳細g1=4g_1=4(小),g2=2g_2=2(中),g3=1g_3=1(大)):

T=4×4+2×2+1×1=16+4+1=21T = 4 \times 4 + 2 \times 2 + 1 \times 1 = 16 + 4 + 1 = 21

水曜は4段階k=4k=4,特大1・大2・中2・小2):

T=g123+g222+g321+g420=2×8+2×4+2×2+1×1=16+8+4+1=29T = g_1 \cdot 2^3 + g_2 \cdot 2^2 + g_3 \cdot 2^1 + g_4 \cdot 2^0 = 2 \times 8 + 2 \times 4 + 2 \times 2 + 1 \times 1 = 16 + 8 + 4 + 1 = \mathbf{29}

全部バラバラ(7枚・7種類,k=7k=7):

T=271=127T = 2^7 - 1 = 127

同じ7枚でも,サイズをまとめられるほど手数は小さくなる(バラバラ127手 → まとめると15〜29手)。

各構成の内訳と寄与割合

構成小の寄与中の寄与大の寄与特大の寄与合計
月曜(T=21)16 (76%)4 (19%)1 (5%)21
火曜(T=15)8 (53%)4 (27%)3 (20%)15
水曜(T=29)16 (55%)8 (28%)4 (14%)1 (3%)29
木曜(T=23)20 (87%)2 (9%)1 (4%)23
金曜(T=18)12 (67%)4 (22%)2 (11%)18
体験お皿の重ね方で手数が変わる
小皿 1枚 = +4手 4
中皿 1枚 = +2手 2
大皿 1枚 = +1手 1

小・中・大の枚数を増減すると,手数 T = 4×小 + 2×中 + 1×大 がどう変わるか見られます。上にくる小皿ほど「重い」(1枚で+4手)こと,そして全部バラバラのときと比べてどれだけ手数が減るかを確かめてみてください。

ミニゲーム自分で動かしてみる(変則ハノイ)
2 2 1

同じサイズ(同じ色)のお皿どうしは,上下を問わず重ねてOK。小・中・大の枚数を変えながら,最小手数(4×小 + 2×中 + 1×大)でのクリアに挑戦してみてください。

スペース数の影響

2か所:解なし(n2n \geq 2

シンクが狭くて2か所しかない(左 + 右のみ,真ん中なし)場合を考える。

n=2n = 2 の場合:

したがって n2n \geq 2 で2か所問題は解不可能。

一般証明(背理法)nn 枚の2か所問題が解けると仮定する。最大の皿(底)を移動するには,その上の n1n-1 枚が左にあってはならない。しかし2か所では退避先が右のみで,右には最大の皿より小さい皿が存在してはならない。n11n-1 \geq 1 の場合,この矛盾を解消する方法がない。

3か所(標準)

T3(n)=2n1T_3(n) = 2^n - 1。これがこれまで見てきた標準ハノイである。

4か所:Frame-Stewart 予想

シンクがもう少し広くて4か所使えると,退避先が複数に分散できるため手数が大幅に減る。

rr 枚を4か所で動かすコストを T4(r)T_4(r),残り nrn - r 枚を3か所で動かすコストを T3(nr)T_3(n-r) とすると,Frame-Stewart 戦略は:

T4(n)=min1rn1[2T4(r)+T3(nr)]T_4(n) = \min_{1 \leq r \leq n-1} \bigl[ 2 T_4(r) + T_3(n-r) \bigr]

具体値(Frame-Stewart 予想)

nn(枚)T3(n)=2n1T_3(n) = 2^n - 1(3か所)T4(n)T_4(n)(4か所予想値)
111
233
375
4159
53113
66317
712725
825533
951141
10102349

注意:Frame-Stewart 予想(1941年)は4か所の最適手数を与えると信じられていたが,何枚の場合でもこの方法が本当に最小なのかは,70年以上にわたり証明されなかった。2014年に Bousch が証明を完成させ,Frame-Stewart のアルゴリズムが最適であることが確定した。

ミニゲーム自分で動かしてみる(4スペースのハノイ)
皿の枚数 5

スペースが4か所あると,退避先が増えて手数がぐっと減ります。皿の枚数を変えながら,3か所のとき(2ⁿ−1)と比べてどれだけ少ない手数でクリアできるか試してみてください。最小手数は Frame-Stewart 値(5枚なら13手,10枚なら49手)です。

スペース数による比較まとめ

スペース数結果n=10n=10 の手数
2か所解なし(n2n \geq 2
3か所T(n)=2n1T(n) = 2^n - 11023
4か所Frame-Stewart 値(2014年証明)49

スペースが1か所増えるだけで,n=10n=10 において手数が 1023491023 \to 49 と約21分の1になる。「シンクの広さは大事」という直感と一致する。

参考文献

  1. Frame, J. S. & Stewart, B. M. (1941). “Solution to Advanced Problem 3918.” American Mathematical Monthly, 48(3), 216–219. (JSTOR(当該号 Vol.48 No.3 の Problems and Solutions)
    • 杭が4本の場合の最小手数を与えると予想される戦略(Frame–Stewart 戦略)を提示。本ノート「スペース数の影響」(4か所)の漸化式 T4(n)=minr[2T4(r)+T3(nr)]T_4(n)=\min_r[\,2T_4(r)+T_3(n-r)\,] の出典。
  2. Bousch, T. (2014). “La quatrième tour de Hanoï.” Bulletin of the Belgian Mathematical Society — Simon Stevin, 21(5), 895–912. (Project Euclid(全文)
    • 4本杭における Frame–Stewart 戦略が最適であることを証明。1941年の予想提出から70年以上を経て決着がついた。