メインコンテンツへスキップ
見出し画像

【Park Beyond】宇宙1周コースターをさらに最適化する

    前回の記事で観測可能な宇宙(930億光年)を1周するよりも走行距離の長いコースターを作りましたがその冗長性に気づいたので、本記事ではさらに最適化していきます。

    アイデア

    前回はn分岐路を使ってn進数コースターを作りました。
    具体的には、分岐路をn進数の各桁の値だと思ってn進数を作り、1周するごとにそのn進数を1増やしていき、オーバーフローした時にゴールするようにしたものです。

    詳細はこちら

    しかしながら、その分岐したコースを合流させるための分岐路自体の行き先を利用してはいませんでした。
    そこで、今回は分岐と合流の両方を使ってn進数コースターを作っていきます。
    これによって全体の分岐の数が約半分になります。

    仕組み

    まずは簡単に仕組みを解説していきます。

    基本的な方針は前回の3進数コースターと同じです。
    これを前提にした解説になるので、まだ読んでいない方は先に上のリンクから前作の解説をご覧ください。

    今回はこれを改良したものとなります。

    画像
    4連3分岐コースター
    3^4=81周しないとゴールできない

    プラットフォームから右にスタートし、坂を登っていきます。
    下二つの3分岐は前回のn進数コースターと同じ仕組みで左側に進んでいきます。
    すなわち、たくさんn分岐路が並んでいて、これはn進数の値を表しています。そしてコースターが1周するごとに分岐の状態が変わり、その状態を見ると周回数が分かり、その数値がオーバーフローした時に初めてゴールできる仕組みになっています。
    ここまでは前回と同じですが、異なるのは帰りです。
    前回はコースが一方通行で、一番左側に着いたらそのままスタート地点とゴールに直通していたのですが、今回はゴールに向かうルートとスタートに戻るルートを繋げて逆走しながら戻ります。

    簡単に説明すると、ゴールへ向かう唯一の道は時計回りを続けることであり、時計周りを続けるためにはn進数の全ての桁で繰り上がりが起こらないといけない仕組みです。すなわちオーバーフローしない限りは反時計回りになってスタートに戻ります。

    注意点

    これはジェットコースターなので、動力はあくまで位置エネルギーです。
    前回は一方通行だったので緩やかな下り坂にしていれば止まることはないのですが、今回はコースを逆走させる以上、位置エネルギーに注意する必要があります。

    観測可能な宇宙1周を超えるコースター

    上のコースターをさらに長くして、観測可能な宇宙1周(2920億光年)を超える走行距離のコースターが以下のキャプチャです。

    画像
    52連3分岐コースター
    ゴールするには3^52周する必要がある

    走行距離を計算する

    前回と同様に30分走らせた時の値から計算していきます。

    画像
    30分走行した時のデータ
    周回数は3進数で121つまり16周目

    16周目で26kmということは16周ちょうどで26km以上ということになります。
    つまり1周約1.63km以上なので、これを3523^{52}周したのがゴールまでの総走行距離になります。
    計算すると1.12×10121.12\times 10^{12}光年、すなわち1.12兆光年以上の走行距離になります。
    観測可能な宇宙1週は2920億光年なので、それを上回ることができました。

    前回は分岐路の数を103個使いましたが、今回は54個と約半分にすることができました。

    なぜ最適化と呼べるのか?

    周回するごとに何も状態が変化しなければ無限ループに陥るので、何かしらの変化をつける必要があります。
    今回の場合、その状態の変化とは各分岐の次の行き先であり、それが3523^{52}通りあります。
    つまり全ての状態をフル活用したのが今回のコースター、すなわち一種の最適化がされているということがいえます。

    まとめ

    観測可能な宇宙1周コースターを最適化しました。

     
     

    nekoni

     
     
    一応、数学の博士号を持っています。 経営シミュレーションとローグライクが好き。

    あなたへのおすすめ