質問掲示板の記事を読んで、以前「コラッツの問題」を2進数表現のセルオートマトン
の手法で視覚化して解くヒントが得られないか挑戦してみたことを思い出しました。
コラッツの問題というのは、任意の正の整数から以下の操作を繰り返すといつかは必ず
1になることを証明するというものです。
(1) その数が偶数ならば2で割る
(2) その数が奇数ならば3をかけて1を足す
セルオートマトンは0/1の2進数表現でルールは以下のようになります。
(a) 繰り上げ(作業変数)に1を設定する
(b) 右端(最下位桁)から順に左へ探索し最初の1のセルから以下の操作を行う
(c) 繰り上げ+現在のセルの値+一つ右のセルを計算し、次の世代のセル・繰り上げを
設定する
※2進数では左に1シフトした値に元の数を足すことで3倍になります
※2で割るという作業は2進数では単に最下位の0を消すことにすぎないので無視します。
(d) (c)の操作を繰り返して1のセルが1つだけになったところで終了
セルオートマトンで描き出されパターンを眺めていたらなにか閃くかと思いましたが
残念ながら天啓は訪れず、やっぱり直観だけでは無理かな(;´・ω・)
コラッツの問題
Re: コラッツの問題
怪しいうねりが危険な香りのする刃物ですね。
先頭ビットは1/2ビットづつでほぼ一定の速度で左に進む一方で、最下位ビットは時々
何ビットもいっき飛びで先頭を追いかけていきます。
いつかは必ず最下位ビットが先頭に追い付いてONビットが1つだけになるという線で
証明できなかと思ったんですが、どう理論展開していったらいいか・・・(;^_^A
先頭ビットは1/2ビットづつでほぼ一定の速度で左に進む一方で、最下位ビットは時々
何ビットもいっき飛びで先頭を追いかけていきます。
いつかは必ず最下位ビットが先頭に追い付いてONビットが1つだけになるという線で
証明できなかと思ったんですが、どう理論展開していったらいいか・・・(;^_^A