muratsubo のパズル日記

あそんでいるパズルについて書きます

Patrick's Parabox - 無限入口 (3)

前回は、多重 ε(ε が複数書いてある部屋)へ飛ぶ際の無限入口の挙動を説明しました。

今回はその応用編です。前回の内容がしっかりわかっていれば、決して難しくはないはずです。

ε 部屋の ε 部屋

前回用いた画像を再掲します。

再帰する ε 部屋(再掲)

このときプレイヤーが青に入ると、青の無限入口ルール 1 および 2 によって、青の ε² へと遷移するのでした。移動の過程はこんな感じになっていましたね:

  • → 青
  • → 青 → 青
  • → 青 → 青 →¹ ε
  • →¹ ε → ε
  • →¹ ε → ε →² ε²

部屋 X に入るときの無限入口の発動ルールを再掲しておきます。

  1. X への進入がループする場合、X への進入をキャンセルし、部屋 X の ε に飛ぶ。
  2. ε への進入もループする場合、ε への進入をキャンセルし、部屋 X の ε² に飛ぶ。
  3. ε² への進入もループする場合、ε² への進入をキャンセルし、部屋 X の ε³ に飛ぶ。
  4. ……

実はこのルール、「進入がループする」や「進入をキャンセルする」という文言が少し曖昧です。 その曖昧さを排してより正確な形でルールを記述すると、以下のようになります。

  1. → X から始まる X のループが発生したら、それを →¹ X ε に置き換える。
  2. →¹ X ε から始まる X ε のループが発生したら、それを →² X ε² に置き換える。
  3. →² X ε² から始まる X ε² のループが発生したら、それを →³ X ε³ に置き換える。
  4. ……

順を追って解説します。 まず、「青の ε」を「青 ε」と書くノリで、「X の ε」を「X ε」と省略して書いています。これから移動経路がもっと複雑化してくるので、短く書けるところは短く済ませないと見た目が大変なことになりますからね

次に各ルールです。まずルール 1 は、

  • 「→ X から始まる X のループが発生したら」=「X に入ったのち、再び X に到達したら」
  • 「→¹ X ε に置き換える」=「そのループに進入することをやめ、ルール 1 で X ε に飛ぶ」

ということを言っています。同様にルール 2 は、

  • 「→¹ X ε から始まる X ε のループが発生したら」=「ルール 1 で X ε に入ったのち、再び X ε に到達したら」
  • 「→² X ε² に置き換える」=「そのループに進入することをやめ、ルール 2 で X ε² に飛ぶ」

という意味になります。 ここで重要なのが、無限入口(ルール 2)によって X ε² にたどり着くためには、まず ルール 1 で X ε に飛ぶ必要があるということです。 無限入口を使わずに X ε に入った(→ X ε)場合、その後 X ε のループが発生してもルール 2 は発動せず、X ε² には飛ばないのです。

ケース 1

抽象的な話はこの辺で切り上げて、冒頭で挙げた具体例に戻ります。

再帰する ε 部屋に入る

左にある青ではなく 右にある青 ε に直接入った場合、プレイヤーはこのような部屋に飛ばされます。

謎の ε 部屋

この部屋は一体なんでしょうか? 先ほどの無限入口ルールに従って、移動経路を考えてみましょう。

  • → 青 ε
  • → 青 ε → 青 ε

まずここまではいいですね。 ここで青 ε がループしますが、青の無限入口ルール 2 は発動しません。 これは、このループが青 ε に直接入る(→ 青 ε)ところから始まっているためです。 ルール 2 が発動するには、ルール 1 によって青 ε に飛ぶ(→¹ 青 ε)ことでループを始める必要があるのでした。 よって、青 ε² には飛ばないことがわかります。

では何が起こるかというと、青 ε の無限入口ルール 1 が発動します。無限入口ルールの「X」に「青 ε」を当てはめてみれば、確かに条件が満たされていることがわかります。 その結果、以上のループは次のように置き換わります。

  • → 青 ε → 青 ε →¹ 青 ε ε

「青 ε ε」という奇怪な記号が登場しました。これこそが "ε の ε" と呼ばれる部屋の正体です。 これは「青の ε」の ε 部屋 であり、青の ε² とは異なる部屋になっています。

このゲームは どの部屋の ε であるかを記号として表示してくれないので、青 ε の ε であっても 青の ε などと同様に 1 個の ε が表示されるだけなのです。 この表記の不親切さも、"ε の ε" という現象の理解を難しくする要因のひとつですね…… *1

まとめると、次のようになります。どの箱からループしはじめるか が重要ということです。

  • 青でループして青 ε に飛んだのちに青 ε でループすると、青 ε² に飛ぶ。
  • いきなり青 ε でループすると、青 ε ε に飛ぶ。

ケース 2(Infinite Enter 18)

次に、「意図せず ε の ε に飛んじゃった」というパターンとして一番多い形を紹介します。 なんならこの構造は、本編のステージでも実現できてしまいます。

ケース 2(Infinite Enter 18)

緑と緑 ε の上部に緑が固定されています。 この状態で緑 ε に上から入ると、以下のようにして緑 ε ε へと飛んでいきます。

  • → 緑 ε
  • → 緑 ε → 緑
  • → 緑 ε → 緑 → 緑
  • → 緑 ε → 緑 → 緑 →¹ 緑 ε(緑のルール 1)
  • → 緑 ε →¹ 緑 ε →¹ 緑 ε ε(緑 ε のルール 1)

途中で 1 回緑のループにより緑 ε に飛んではいますが、それはループの開始地点にはなっていません。 あくまでも最初に入ったのは緑 ε なので、緑 ε のループは無限入口によって(→¹ 緑 ε)ではなく通常の進入方法(→ 緑 ε)で始まっています。 ゆえに、最終的な行き先は緑 ε² ではなく緑 ε ε になります。

ケース 3

ε ε についてなんとなく理解できてきたところで、次は ε² も混ぜてみましょう。

ケース 3

青の中に青、青 ε の中に青 ε、青 ε² の中に青 ε があります。 入口を横向きにしたのは、ε² の文字にかぶらないようにするためです。

さて、ここで青に入るとどうなるでしょうか。 パッと構造を見た感じでは「どの箱もループしてそうだし、最初青に入ってるから青 ε³ に飛ぶのかな~」と思えますが……

  • → 青
  • → 青 → 青
  • → 青 → 青 →¹ 青 ε
  • →¹ 青 ε → 青 ε
  • →¹ 青 ε → 青 ε →² 青 ε²

ここまでは前回扱った多重 ε の話ですね。続けます。

  • →² 青 ε² → 青 ε
  • →² 青 ε² → 青 ε → 青 ε
  • →² 青 ε² → 青 ε → 青 ε →¹ 青 ε ε

青 ε² に 1 回飛ぶことは成功しましたが、その後もう 1 回青 ε² に戻ってこれず、青 ε³ には飛んでいません。青のループを介さず、直接青 ε に入ってループしてしまったので、青 ε ε に飛んだのですね。

ケース 4

最後は、先ほどの例を少し変えたこんな形です。

ケース 4

青の中に青、青 ε の中に青 ε²、青 ε² の中に青 ε² があります。 ここで青に入るとどうなるでしょうか、そんなに複雑じゃないのでちょっと移動を追ってみてください。

  • → 青
  • → 青 → 青
  • → 青 → 青 →¹ 青 ε
  • →¹ 青 ε → 青 ε²
  • →¹ 青 ε → 青 ε² → 青 ε²
  • →¹ 青 ε → 青 ε² → 青 ε² →¹ 青 ε² ε

最後は青 ε² の無限入口ルールが発動して、青 ε² の ε 部屋に到達しています。


いかかでしたか?

ここまでの内容が把握できれば、無限入口の行き先に関してはマスターしたことになります。 これでもう ε³・ε² ε・ε ε²・ε ε ε のそれぞれへの飛び分けを要求してくるようなカスタムステージに出くわしても安心!

*1:そもそも "ε の ε" を実現することは(少なくとも本編では)想定されてないっぽいので、「不親切」という言い方はよくないですね。でもカスタムレベルに対応してるんだし、本編でも Infinite Enter 18, Challenge 34 で ε の ε を作れるので、想定しててほしかったな~という気持ちはちょっとある

Patrick's Parabox - 無限入口 (2)

前回の続きです。 前回は、無限入口が発動する条件、および ε に到達するような部屋の構造のうち簡単な例をいくつか見てきました。

今回は、ε のさらに先まで深掘りしていきます。

前準備

より深い話題に進む前に、今後の話をしやすくするための準備をいくつか行っておきます。

構造図の簡略化

前回は、以下のような図を用いて部屋の構造を表していました。

Challenge 30

今後もこのような図を使っていくのですが、部屋の構造が複雑になるにつれて、図もごちゃごちゃになってしまいます。 そこでまずは、この図をもっと簡略化して描けないかを考えてみます。

多くの場合、無限入口を考える際には、本体とクローンを区別する必要がありません。*1 Infinite Enter 4, 5 なんかはその典型例ですね。 本体にクローンを入れても、クローンに本体を入れても、いずれにせよ緑の部屋の再帰構造が作られていることに変わりはないので、結局は緑の ε に飛ぶわけです。

Infinite Enter 4, 5 はこれ

そこで、今回は 本体とクローンを同一視してよい ことにして、本体の箱とクローンの箱を区別せず、どちらも「同じ部屋に入るための箱」と思うことにします。 「無限入口が発動したときの行き先がどこになるか」に焦点を絞って解説したいので、議論を簡単にするためにこのような仮定を置きました。

このもとで、先ほどの図は次のように簡略化することができます。

Challenge 30(簡略化)

元の図に比べて、無限入口の挙動を考える上で重要な「黄色と緑が相互再帰している」という構造が見えやすくなりましたね。

ループ起点の法則

プレイヤーが、以下の図で表されるような部屋のループ構造に陥ったとします。

部屋進入ループ

各 ○ および ☆ はそれぞれ別々の部屋を表すものとします。 つまりこの図は、途中まではループしていないが、ある部屋 ☆ から先はループしている、という構造を描いたものです。

このとき、ループの起点となっている部屋 ☆ の無限入口が発動します。 なぜなら、これらの部屋の中で最も先に 3 回入ることになる部屋が ☆ だからです。*2

この法則を知っていれば、無限入口によるプレイヤーの遷移を追いやすくなるので、ぜひ頭に置いておいてください。

多重 ε 部屋

まずはこちらをご覧ください。

再帰する ε 部屋

右の青い ε 部屋は、左の青い部屋の無限入口の行き先です。 青の中には青のクローンが、そして青 ε の中には青 ε のクローンが入っています。

この状態で青い部屋に進入すると何が起こるでしょうか?

青はループしているので、繰り返し入ることで無限入口が発動して青 ε に飛びます。 しかし、そうして飛んだ先の青 ε もループしているので、青 ε に繰り返し入ることになります。 このとき、プレイヤーの最終的な行き先は、以下の画像のような 2 つの ε が書かれた部屋になります。

2 重 ε

よく「ダブル ε」と呼ばれている部屋ですね。 この記事では、n 個の ε が書かれた部屋を n 重 ε 部屋 と呼ぶことにします。 また、「縦に n 個並んだ ε」はこういったテキストに書き起こしにくいので、かわりに記号「εⁿ」で表します。 つまり、ダブル ε は「ε²」、トリプル ε は「ε³」、という風に書きます。

さて、部屋 X に入るときの無限入口の発動ルールは、以下のようにまとめられます。

  1. X への進入がループする場合、X への進入をキャンセルし、部屋 X の ε に飛ぶ。
  2. ε への進入もループする場合、ε への進入をキャンセルし、部屋 X の ε² に飛ぶ。
  3. ε² への進入もループする場合、ε² への進入をキャンセルし、部屋 X の ε³ に飛ぶ。
  4. ……

この文言を読むだけで多重 ε の挙動を理解するのは難しいので、以下でどんどん具体例を挙げていきます。

ケース 1

まずは、以上の画像で挙げた例について、プレイヤーの動きを追ってみましょう。

ケース 1

  • [→ ] まず、青に入る。
  • [→ 青 → ] 青の中の青に入る(ここで、青を起点としたループが起こる)。
  • [→ 青 → 青 →¹ ε] 無限入口ルール 1 により、青の進入ループをキャンセルして ε に飛ぶ。
  • [→¹ ε → ε] ε の中の ε に入る(ここで、ε を起点としたループが起こる)。
  • [→¹ ε → ε →² ε²] 無限入口ルール 2 により、ε の進入ループをキャンセルして ε² に飛ぶ。
  • [→² ε²] 移動が完了した。

プレイヤーの移動の様子を [ ] の中に表示してみました。 → は通常の進入、→ⁿ は無限入口ルール n による進入です。 → 青 → … → 青 という移動が起こると、ルール 1 によって →¹ ε に置き換わり、さらに →¹ ε → … → ε という移動が起こると、ルール 2 によって →² ε² に置き換わる、というように次々と無限入口が発動するわけです。

ケース 2

「進入がキャンセルされる」という処理に何の意味があるのかを理解するべく、次の構造を考えます。

ケース 2

青の中には緑、緑の中には青、青 ε の中には青がそれぞれ入っています。

この青に入ると、以下のようにして青 ε² に飛びます。

  • [→ ] まず、青に入る。
  • [→ 青 → ] 青の中の緑に入る。(a)
  • [→ 青 → 緑 → ] 緑の中の青に入る。
  • [→ 青 → 緑 → 青 →¹ ε] 無限入口ルール 1 により、青のループを消して ε に飛ぶ。
  • [→¹ ε → ] ε の中の青に入る。
  • [→¹ ε → 青 → ] 青の中の緑に入る。(b)
  • [→¹ ε → 青 → 緑 → ] 緑の中の青に入る。
  • [→¹ ε → 青 → 緑 → 青 →¹ ε] 無限入口ルール 1 により、青のループを消して ε に飛ぶ。
  • [→¹ ε →¹ ε →² ε²] 無限入口ルール 2 により、ε のループを消して ε² に飛ぶ。
  • [→² ε²] 移動が完了した。

以上の移動経路を見てみると、(a) と (b) の 2 か所で緑に入っているので、緑のループが発生しているように見えます。しかし、(b) 時点で (a) の移動経路は既にキャンセルされているので、実際には緑はループしたものとは扱われず、緑 ε に飛んでしまうことはありません。

ケース 3

Infinitesimal でもしばしば使うセットアップとして、以下の画像のようなものがあります。

ケース 3

青と青 ε が相互に再帰しています。 この青に入ると、以下のようにして青 ε² に飛びます。

  • [→ ]
  • [→ 青 → ε]
  • [→ 青 → ε → ]
  • [→ 青 → ε → 青 →¹ ε] (無限入口ルール 1)
  • [→¹ ε → ]
  • [→¹ ε → 青 → ε]
  • [→¹ ε → 青 → ε →² ε²](無限入口ルール 2)
  • [→² ε²]

ケース 4(Multi Infinite 8)

最後に、ε³ が出てくる例として、本編で初めて多重 ε が登場したステージを見てみます。

ケース 4(Multi Infinite 8)

青とその ε、ε² に対し、上側に青が詰まっています。

このとき、青に上から入ると青 ε³ に到達します。その過程を想像できますか?

  • [→ ]
  • [→ 青 → ]
  • [→ 青 → 青 →¹ ε](ルール 1)
  • [→¹ ε → ]
  • [→¹ ε → 青 → ]
  • [→¹ ε → 青 → 青 →¹ ε](ルール 1)
  • [→¹ ε →¹ ε →² ε²](ルール 2)
  • [→² ε² → ]
  • [→² ε² → 青 → ]
  • [→² ε² → 青 → 青 →¹ ε](ルール 1)
  • [→² ε² →¹ ε → ]
  • [→² ε² →¹ ε → 青 → ]
  • [→² ε² →¹ ε → 青 → 青 →¹ ε](ルール 1)
  • [→² ε² →¹ ε →¹ ε →² ε²](ルール 2)
  • [→² ε² → ε² →³ ε³](ルール 3)
  • [→³ ε³]

無限入口を合計 7 回も発動させながら、長旅の末 ε³ に到着します。 この動きが追えるようになれば、多重 ε の挙動は理解したといっていいのではないでしょうか。


多重 ε について一通り触れられたところで、次回はいよいよ "ε の ε" について迫っていきます。 「2 重 ε と "ε の ε" は違うものである」という非直感的な仕様が待ち受けている……

*1:1 × 1 のブロックを用いたときなど、部屋が "しっかり固定されていない" 場合はこの限りではありません。

*2:事実、☆ に 3 回入るまでに、☆ より前にある部屋は 1 回、☆ 以外のループをなす部屋は 2 回しか入らないことが分かるかと思います。

Patrick's Parabox - 無限入口 (1)

最近は Patrick's Parabox というパズルをよく遊んでいます。

このゲームはカスタムレベル作成に対応しているので、色々作って公開しています。 ぜひあそんでみてね

さて、わたしが作ったカスタムワールドのひとつに、無限入口 ε に関するレベルを 100 問集めた Infinitesimal というワールドがあります。 Infinitesimal では、本編では深く取り上げられていなかった無限入口にまつわる仕様が多数登場するのですが、この記事ではそういった仕様も全部ひっくるめた、無限入口の完全解説 を試みます。

1 種類の部屋からなる無限入口

最も基本的なところからはじめましょう。 このゲームでは、同じ部屋に無限に入り続けてしまうケースが発生します。

部屋の入れ子構造

以上の画像において、左側は本体の中にクローンが、右側はクローンの中に本体が入っています。 これらの部屋の構造を図にすると、以下のようになります。

入れ子構造の図解

MS ペイント感たっぷりの画像で失礼します。 [ ] は本体、( ) はクローンを表しています。

本体から出ている実線の矢印は、その部屋の行き先を表します。 つまり、その本体に入ると、直ちに矢印の先の部屋に入ることになります。

また、クローンから出ている点線の矢印は、その本体にあたる部屋を表します。 つまり、そのクローンに入るということは、矢印の先の部屋に入るのと同じことになります。

以上の図において、いずれの場合も矢印がループ状になっているので、このような部屋に入ったが最後、プレイヤーは永遠に部屋に入り続け、いつまで経っても終着点にたどり着くことはできません。 こういった場合に 無限入口 が発動して、プレイヤーは無限に入ることになる部屋の ε 部屋 へと飛ばされます。

無限入口の図解

この図はこんな感じに読んでください:

  • 左側:
    • ▷ [ ] 緑の本体に入ると、
    • [ ] → ( ) その中の緑のクローンに入る、
    • ( ) → [ ] すなわち緑の本体に入ることになる。
    • [ ] → [ε] 以上を繰り返すことで無限入口が発動して、緑の ε に飛ぶ。
  • 右側:
    • ▷ ( ) 青のクローンに入ると、
    • ( ) → [ ] すなわち青の本体に入ることになり、
    • [ ] → [ ] その中の青の本体に入る。
    • [ ] → [ε] 以上を繰り返すことで無限入口が発動して、青の ε に飛ぶ。

無限入口の判定

ところで、無限入口が発動する、すなわちある部屋に無限に入り続けてしまうかどうかを、このゲームはどうやって判定しているのでしょうか。 「無限に部屋に入り続ける」ことを本当に文字通りの意味で判定することはできません。それには無限の時間がかかるからです。

この仕様を確かめることのできる、面白い実験があります。

実験の様子

以上の画像のように、再帰する部屋と十分グリッドが細かい部屋を隣接させて、色々な位置から再帰する部屋に進入することを考えます。 一見、どの位置から入ったとしても、単に緑の部屋に入るだけで、緑の ε 部屋に飛ぶことはないように思えます。

しかしながら、その予想は裏切られます。

実験の結果

以上の画像において、上側の区間の位置から入ったときは、予想の通り緑の部屋に入るだけです。 一方、下側の区間の位置から入ったときは、なんと緑の ε 部屋に飛びます

このことから、このゲームにおける無限入口発動の判定条件は、「同じ部屋への進入が 3 回 繰り返されること」であると推測できます。 *1

2 種類以上の部屋からなる無限入口

ここからは、複数種類の部屋が絡んだ無限入口を取り扱います。

ケース 1

ケース 1

青い部屋の中に緑の本体、その中に緑のクローンがある構造です。

青い部屋はループに含まれていないので、無限入口には特に関わってきません。 この場合、「1 種類の部屋からなる無限入口」の項で扱ったものと同じことが起きて、プレイヤーは最終的に緑の ε に飛びます。

ケース 2

ケース 2

緑の本体の中に青い部屋、その中に緑のクローンがある構造です。

この場合もケース 1 と同様、プレイヤーは最終的に緑の ε に飛びます。 しかし、ケース 1 とは異なり、青い部屋もループに含まれていますが、なぜ青の ε には飛ばず、緑の ε に飛ぶことになるのでしょうか?

その答えは、先ほど説明した無限入口の判定条件「同じ部屋に 3 回入ること」にあります。 プレイヤーの動きを順に追ってみましょう。

  • プレイヤーは最初、緑の本体に入り(1 回目)、
  • その中の青い部屋に入り(1 回目)、
  • その中の緑のクローン、すなわち緑の本体に入り(2 回目)、
  • その中の青い部屋に入り(2 回目)、
  • その中の緑のクローン、すなわち緑の本体に入り(3 回目)、
  • 緑の無限入口が発動して、緑の ε に飛ぶ。

おわかりいただけましたでしょうか。プレイヤーが はじめに緑の部屋に入った のがポイントで、そのため青よりも先に緑の部屋に 3 回入ることになるのです。 ゆえに、青の無限入口よりも先に緑の無限入口が発動して、緑の ε が行き先となるわけです。

ケース 3(Challenge 30)

以上の仕様を組み込んだステージが、本編の Challenge 30 および 31 です。 「2 種類の部屋が相互再帰しているところに入ると、最初に入ったほうの色の ε に飛ぶ」という現象は、こうして説明がつきます。

ケース 3(Challenge 30)


このあたりで、いったん記事を区切ろうかと思います。 まだ ”ε の ε” はおろか "ダブル ε" の説明にすらたどり着いておらず、無限入口のほんの入口を説明したにすぎませんが、今回の内容は以降でもしっかり使うことになります。 ぜひ 3 回は読んで、この記事の ε に到達してください

*1:追記:いま見返してみると、「同じ箱(本体とクローンも区別して考える)への進入が 2 回繰り返されること」と考えてもこれはこれで辻褄が合いますね。気が向いたら検証します