桜が散り終わる前に三本桜を復活させる

過去ログもほぼ読み終わったので,実装に移ることにしよう.「コラッツ三本桜」が,①コラッツ完全木,②コラッツ長子木,③コラッツ一般木の3つからなるとすると,プロジェクトの最終版には①と③が含まれているものと考えられる.いや,A面には完全木(full regular)というオプションがあるが,B面にはそのようなオプションはない.つまり,B面は完全木一色になっているはずだ.B面にはOdd numbersというオプションがあるが,これは検証テスト(Verification)を偶数まで拡張するためのものだ.従って,B面ではコラッツ一般木は扱われていない.

「コラッツ完全木検定」に移行する前のプロジェクト「コラッツ銀河高速道路系」ではA面,B面のどちらにも仮想木(Vertual tree)というオプションがあり,デフォルトでは一般木を出力するようになっていたが,最新版の「コラッツ完全木検定」では「ユニバーサルアドレスコード」を前面に押し出しているので,長子木をベースとするアドレッシングは不用になったものと判断された.しかし,ノード番号の4進数解析などで出てくる「兄弟順位」は長子ノードを基準とするものであり,「ユニバーサルアドレスコード」はむしろ便宜的なコーディングとも言える.

この意味では,「ユニバーサルアドレスコード」ないし,「コラッツアドレスコード」というのは,ちょっと気の利いた「アイディア」,ないし「思い付き」に過ぎない.ただし,このコードを使うとコラッツ木全体にシームレスにアクセスできるという利点もあり,捨て難いところもある.逆に「詳細付番」などやや回りくどい説明が必要になるというデメリットもあるが…A面を最新版,B面を銀河系から取るなどの折衷案も考えられるが,却って混乱の元になるような気もする.やはり,単純に三択できるようにするしかないのではないだろうか?

いずれにしても,ロジックはすべて実装してあるので,それらを継ぎ接ぎしてパッチするだけだ.慎重な作業は必要だが,注意深くやればそれほど難しい作業ではない.ともかくやってみることにしよう.「コラッツ銀河高速道路系プロジェクト」というフォルダがある.これが「旧版」の最終版であることを確認しておこう.この中に入っているExEは2月20日にビルドされたものだ.「完全正則コラッツ木を構成するためのもう一つの方法」というのは2月20日に出てきているので,これが最終版と考えて間違いないだろう.この版はV2.0.2 REL 2022-02-11だ.最新版の方はV2.2.1 REL 2022-02-26となっている.

間違いないようにまず,バージョン番号から変えておくことにしよう.V3.0.3 REL 2022-04-01とする.アセンブリ名もCollatzCompleteTreeに変更しておこう.ビルド後イベントも書き直しておく必要がある.アイコンも変えたいところだが,これは後で考えることにしよう.⇒とりあえず,旧版のVirtual Treeというボタン2個を最終版の画面に追加した.さて,このあとどう調理したらよいか?⇒いや,ボタンではなく,最初からコンボボックスを使って三択できるようにしておこう.選択肢は,①General tree,②Virtual tree,③Complete treeとした.

image

モードを選択するとボックスの背景色が変わるようにした.A面では一般木と完全木はすでに実装済なので,仮想木処理を追加すれば完成する.GenerateCollatzTreeをトレースして差分だけを挿入するようにしてみよう.処理本体はGetRegularCollatzTreeだ.いや,ここまではまったく同じだ.CollatzTreeStructureで相違点が出てくるのではないか?⇒この関数の内部で場合分けするようにした.無効ノードカウント以外は完全に動作するようになった.この数字はUpdateParameterで更新されている.⇒対処した.これでA面は完全に動作するようになった.

B面は明日ということにしよう.

コメントを残す

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

CAPTCHA