Collatz Milky Highway 銀河高速道路系

予備機では引き続き検証テストが走っている.これもやがては仮想木の検証テストに切り替えることになるので,ある意味もうどうでもよい作業になってきた.新しい概念として「コラッツ仮想木」というものが導入された.これは,コラッツ数のみからなるコラッツ木であり,系図学的には長子ノードのみを集めた,長子木と呼ぶことができる.この概念を説明するよいメタファーを探していたが,最終的にはやはり一般道と高速道という区別で説明するのがわかり易いという結論に達した.

通常のコラッツ木を一般コラッツ木,仮想化されたコラッツ木を仮想コラッツ木と呼ぶとすれば,一般コラッツ木は一般道路系であり,仮想コラッツ木は高速道路系である.一般道路網ないし,高速道路網の方がイメージし易いが,コラッツ木は放射状に広がる木構造を持ったネットワークであり,網と呼ぶと誤解を招くおそれがあるため,ここではあえて「系」と呼ぶことにする.このコラッツ高速道路系を今後はCollatz Milky Highwayと呼ぶことにしたい.これはもちろん,宮沢賢治の銀河鉄道からの着想で銀河高速道路ということを意味している.これまではCollatz Tree Generatorと呼んできた我々の検証ツールも今後はCollatz Milky Highwayという製品名に変わることになる.

仮想コラッツ木はコラッツ木の各ノードの子ノードの集合を1点に集約したものであり,この操作を反復適用すると,最終的にはコラッツ高速道路系は一本のストレートな数直線まで転換することができる.わたしのイメージではこれこそ賢治が夢見た銀河鉄道にほかならない.宇宙エレベータというSF的なアイディアもあるが,それにも少し似ている.マニュアルがあるので,そう簡単にはゆかないかもしれないが,あと数日以内には「コラッツ木生成機」に代わる「銀河高速道システム」をリリースできるだろう.これがリリースされたらどうなるか?もう誰も反論できなくなることだけは間違いない.実装を続けよう.

すでに①コラッツ木生成・②コラッツ数列生成・③枝番号列からノード番号取得の3機能に関しては実装はほぼ完了している.検証テストは②と③の組み合わせ以上のものではないので,残っている大きなところとしては,④コラッツ幹線木生成があるだけだ.まず,これを片付けてしまおう.仮想木⇔一般木の切り替えスイッチをタブBにも設けることにした.このスイッチはタブAのスイッチと状態を共有し,連動する.

▲Get the Numberで枝番号に大きな数を入れたらエラーになった.単に大きいという理由ではなさそうだ.10000を超える数を入れても問題ない.おそらく,枝番号の組み合わせて何か大きな番号にぶち当たっのではないだろうか?⇒いや,違う.おそらくコンマとピリオドを間違えたのだろう.エラーになるのはよいが,入力が消えてしまうのはまずい.⇒例外処理でクリアしていた.そのまま抜けるように修正した.

Trancated TreeとGet the Numberは1行の表示内容が異なるだけだから統合できる.⇒ほぼ統合完了というとろまで作業したが,最後の詰めでやはり分離しておいた方がよいという結論に達したので巻き戻して作り直した.コラッツ仮想木の実装はほぼ完了した.

▲検証テストで上記と同じThe value could not be parsedエラーになった.ボタンにはStopが表示されている.これは実行時に表示されるものではなかったか?仮想木モードでなければ動作する.1から開始するとエラーになるようだ.Odd number=1でGet the Sequenceを実行したとき,枝番号リストが空になったままだ.N=1のときはループを無動作で抜けている.⇒対処した.

仮想コラッツ木と一般コラッツ木の関係を明確なものにするために,論理を整理して共通部分は可能な限り共通化するようにした.関数は仮想木・一般木の共通処理と,それぞれの専用処理に区分される.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA