コラッツ問題が演算ごとに 1.58/2 の縮小比で、最後は必ず1に収束することが見えてきます
Java による、コラッツ問題の演算実行用のソフトウェアーです。
コラッツ問題を解きながら、その真髄を暴きます。
【ヘルプより抜粋】
遊び方(コラッツ問題の要旨)
1.1への収束は必ず2進数の01の集まりで起こります。たとえば「基数入力」をチェックして「初期値」に10101(10進数の21)を入れると1回の演算で終了します。
しかも、これは後の3.に関係しますが、21は3の倍数なので、この値を発生することが出来ないため、010101への連なりはないということです。これが0101(10進数の5)であれば、5に至る値は無数にあります。
11(3), 1101(13), 110101(53), 11010101(213),...
2.値の拡大は2進数の末尾11の集まりで起こります。1.と同様に「基数入力」をチェックして「初期値」には11111(10進数の31)を入れると連続4回(×3+1)/2の割合で拡大します。
さらに、この11の集まりを発生する値にも規則があり、1001(9)から111(7)が発生 するように10の集まりと末尾2桁の01がそれです。10101001(169)では1111111(127)が発生し、7連続で拡大します。
3.演算中に3の倍数が現れることはありません。それは、奇数の演算 N×3+1 により3の倍数ではなくなってしまうからです。3の倍数が現れるのは初期値だけです。
ですから、「初期値」を3として、「自動」をチェックし、「増分値」を6にして「実行」すれば、すべての奇数が現れることになります。もちろん、有限内で。
4.「偶数演算を省いた2進数表示」がコラッツ問題の本質を表しています。
演算ごとに、先頭の1は×3で2進数の log_2 3 = 1.58桁、末尾は+1により2桁の伸び率がるため、1.58/2 の比率で末尾の1は必ず先頭の1に追い付くのです。
これは単なる確率ではありません。「サイコロを6回振った目の数」ではなく「1〜6の連番のカードを箱から1枚ずつ抜いた数」であり、必ず1〜6そろう。違いは数の出る順番というようなものです。
専門家でも「log_2 3/2」を指摘する人はいますが、2進数としての桁位置などは見ないで、単に10進数値での確率と決め込んでいます。しかし1への収束は確実に起こることなのです。
このことを、以下にA,B,C,Dの4ケースで示します。
ソフト名: | コラッツ・ペイン(コラッツ問題の演算実行) |
---|---|
動作OS: | Windows 11/10 |
機種: | x64 |
種類: | フリーソフト |
作者: | ラビット |