コラッツ木生成ツールはほとんど完成

コラッツ木生成ツールはほとんど完成しているが,もう一つだけ機能追加することにした.ノードのアドレス(枝番号リスト)を渡してそのノードを特定するという処理だ.これができると,仮想的にはコラッツ木上の任意の位置にある奇数を特定できることになり,コラッツ木を完全管理(アンダーコントロール)できていることを示すことになる.⇒ほぼ実装完了した.画面構成も変更し,タブで画面全体を覆うようにした.2つのタブはそれぞれ出力用ペーンを持ち,干渉することなく独立した2つのアプリとして操作できる.つまり,Build Collatz Treeで大きな木をダンプしているのと並行して,GetBranchPositionで遊ぶことができる.GetBranchPositionには2つ機能が入っている,①Get the Sequence と②Get the Numberだ.

①は奇数を指定して,その奇数のコラッツ数列を出力し,②はコラッツ数列の枝番号リストを入力してその経路の末尾ノードを出力するというものだ.②は①の逆演算で実際,出力画面では天地が完全に入れ替わっている.このプログラムがつねに正しい値を出力することが保証されれば,このアプリ自体,コラッツグラフ問題に対する解答になっている.①の論理も②の論理も間違いようがない程度にシンプルなものなので,すでにこの問題は解かれていると考えてよいと思う.

ことのついでにもう一つ機能拡張しておきたい.Trunlcated treeというオプションだ.これを使うとコラッツ木を1本の幹と葉だけからなる単純な木に縮約して出力することができる.本体のBuild Collatz Treeの出力はしばしば大きなものとなり,終了までに数時間以上掛かることもあるので,興味のある部分だけを抽出出力できればかなり応用範囲が広がる.それほど難しいものではないので,実装に進むことにしよう.

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA