コラッツの問題

アバター
いわん
記事: 32
登録日時: 9年前

コラッツの問題

投稿記事 by いわん » 6年前

質問掲示板の記事を読んで、以前「コラッツの問題」を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つだけになったところで終了
collatz1.png
初期値65535
collatz1.png (13.42 KiB) 閲覧数: 335 回
collatz2.png
初期値65537
collatz2.png (11.22 KiB) 閲覧数: 319 回
セルオートマトンで描き出されパターンを眺めていたらなにか閃くかと思いましたが
残念ながら天啓は訪れず、やっぱり直観だけでは無理かな(;´・ω・)

アバター
usao
記事: 1889
登録日時: 12年前

Re: コラッツの問題

投稿記事 by usao » 6年前

鋭利な刃物にしか見えない

アバター
いわん
記事: 32
登録日時: 9年前

Re: コラッツの問題

投稿記事 by いわん » 6年前

怪しいうねりが危険な香りのする刃物ですね。
先頭ビットは1/2ビットづつでほぼ一定の速度で左に進む一方で、最下位ビットは時々
何ビットもいっき飛びで先頭を追いかけていきます。
いつかは必ず最下位ビットが先頭に追い付いてONビットが1つだけになるという線で
証明できなかと思ったんですが、どう理論展開していったらいいか・・・(;^_^A