コラッツ予想(3n+1)がなぜ収束するのかについて

このノートの主題
・コラッツ予想を2進法で考えてみたところ、3の累乗を2進数で表示したときに、「ある大きさから1の数を0の数が上回る」という特性があることに気づきました。
・コラッツ予想が「なぜ収束するのか?」について、それっぽいヒントになると思いましたので、いちおう公開します。

・2進法で考えるコラッツ予想

こちらは某ユーチューバーの鈴木先生がおっしゃっていたのですが、「コラッツ予想は2進法で表記すると直感的になにが起こっているのか分かりやすい」ということで、まずは2進法でコラッツ予想をとらえるところから解説したいと思います。
知っているという方は読み飛ばして差支えないです。

まずは、適当な数字を二進法で表記すると、以下のような形になります。
110100
この表記のすばらしい点は、どんな数字に対しても「2^kの約数がひと目で分かる」点です。
110100
太線で示したところが、この数の2^kの約数となります。
この例で言えば、下数桁を見れば、この数はM×2^2の形でくくれるのが一目で分かる、ということです。

本題に戻って、そもそもコラッツ予想の操作は

偶数なら2で割る、奇数なら3倍して1を足す

という単純なものですが、2進数で表記すれば「2で何回割れるのか?」が一目瞭然、ということです。

110100
2で割ると
11010
2で割ると
1101

になります。2で2回割れます。

さらに、「3倍して1を足す」という操作も2進数なら直感的に分かりやすくなります。

3=2+1なので、ある数を3倍するという操作を2進法で表記すると、「位が1つあがった数をもとの数に足しこむ」という単純な動作になります。どういうことかと言うと

   1101
 +11010
=100111

が3倍の操作です。コラッツ予想ではこれに1を足すわけですから、
 100111
+     1
 101000

となり、またこの数を構成する最小の2^kから何回2で割るかが一目瞭然、というわけです。
これが2進法で表記する利点です。

・2で割るのをやめると何が見えてくるか?

いよいよこのブログの本題です。
この操作を何度かやっていて、「2で割る動作をやめてもコラッツ予想は成立するのではないか?」という風に思いついたので、成立するようにやってみました。

つまり、ある数を以下のように2進数で表記します

K(a)2^a + K(b)2^b + K(c)2^c + …. + K(z)2^z

(K(a)~K(z)=0,1)

2で割りきれるまで割るということは、この中から最小となる2^kで全体を割るのと同じことです。
それをやめつつ、コラッツ予想と矛盾することなく操作を続けるにはどうするか。
以下のような変形コラッツ予想を考えました。

《変形コラッツ予想》
すべての自然数Xに対して
3X + 2^k
(2^kはその時のXの約数)
を繰り返していくと、その数は2の乗数(1000….000)に収束する。

つまり、Xを2^kで割ってから、3倍して1を足す(x/2^k)×3+1のですから、Xを3倍して2^kを足してやって、あとで2^kで割っても同じじゃないか{(x)×3+2^k}/2^kということです。

もっというと2進数で表記すれば「別に割らなくても分かる」じゃないか、ということです。

・本当に2の乗数(100…000)に収束するのか?

変形コラッツ予想をしばらく動かしていると、「+ 2^k」の操作のあと、次の「+ 2^k'」は絶対に前の値より大きくなるはずです。

当然といえば当然です。「+ 2^k」する相手が「2^k」を最小の構成要素として持っているので、足して出来る数は2^(k+1)以下の構成要素を持たないからです。
その後、3倍するという操作でも、「+ 2^k'」するという操作でも、2^(k+1)以下の数にはまったく影響をあたえません。

また前回、3X+1のかわりに、1X+1ならコラッツ予想が成立することを証明しましたが、これにも同様の変形操作をためしてみたところ、当然ながら最終的に2の累乗に収束していました。
二進法で変化をよく見ると、1X+1なので、掛け算のパートでは数はまったく変化しません。
ですが、「+ 2^k」するたびに一番下の位からどんどん1が0になってゆく変化のみ起きます。もはやどんな数でも自明に100…000に収束すると言って差し支えないでしょう。

これから考えると、3X+1でなくとも、1と0の割合によって収束するかどうかを判別できる可能性があります。

いままで私は、この0をズバッとぜんぶ削除して、完全に2で割って何かを論じようとしていました。
けれど、この0を残してみると、もっと根本的な問題があるような気がします。

「2の乗数(100…000)に収束する」ということは、言い換えると「この計算を繰り返していくと、2進数表記の1がどんどん減って、最終的にただ1個に収束する」ということです。

つまり、変形コラッツ予想の操作を繰り返しながら、0と1の割合をじっと観察していれば、どんどん1が減って0が増えていくはずです。

かいつまんで言うと、
「何回も3倍する=3の累乗にそもそも0が増えて1が減る傾向があるのが原因じゃないのか?」
というところまで分かったよ、という話です。

(6月5日追記:3の累乗は(2+1)^nの形になるので、因数分解すると2^n+Cb2^(n-1)+・・・+Cz2+1・・・①の形になり、nが無限に大きくなるとどんどん2^nに近づいていきます。
 さらに、2進法にしたときの構成要素である最低数の2^k(k=0含む)を加えるため、①は式の右の方からどんどん消えていくことになります。たぶんこれが原理ですが、それが全部だとすると5も2^2k+1なので2の累乗に収束しそうな気がします。実は5X+1は別記しますが別の収束点があります。どうしてなのか? を今後考えていきたいです)

ただ、その詳細なメカニズムがまだ分かっていないです。
以下は、自分の所感ですが、いちおう書いておきます。

ある2進数を0と1の数字の塊として考えます。
1を0で分割されるまでの連続回数でとらえると、
1が単独である場合、3倍すると
  1
+1
=11

となり、1の数が1個増える。
しかし、1が連続である場合、3倍すると
   111・・・111
 +111・・・111
=10111・・1101
となり、1の数は同じだが、0の数が2個増える。

また、「1が連続である場合、その直下の位から1が繰り上がってきたとき、1の連続回数ぶん0が増え、1が減る」。

  111・・・1111
 +         1
=1000・・・0000

1.3倍して1が増えるのは、0に挟まれた単独の1がある場合のみ。そのとき連続の1になる。
2.しかし、連続した1がある場合は1の数は増えず、0が2個増える。
3.おまけに連続した1は下からの繰り上がりがあると、いきなり1個に減り、そのぶんだけ0は爆発的に増える。

これらの要素があわさって、2進法表記の3の累乗は0の割合が増え、1の割合が減るのだと思われます。

実際に、プログラムを組んでやってみたのですが、(Excellだと10進数→2進数変換関数が数桁ぶんしか対応していないので、いちからVBAで作らないといけなくてちょっとしんどい)
だいたい3の11乗くらいが1のピークで
1対0=13:5(個)
と圧倒的優位だったのが、3の12乗で
1対0=10:10(個)
以降は1が優勢になる場面はみられず、25乗で
1対0=10:30(個)
になっていました。
(Excelでは30乗でオーバーフローした)

・結論と今後の課題

今回分かったことはここまでです。あとはネットの海に投げて、個人的に楽しもうと思います。

原理的には、コラッツ予想とは1を足す操作(繰り上がり)によって、2進法の最小の位の1が常に繰り上がり続けているため、n倍する操作によって1の集合が減る傾向にあるか、あるいは数がまったく変化しないような場合に、どんどん上の位へと圧縮される、というのが収束の原理になると思います。

ところで、『5X+1は13に収束するループがあります』。

この収束ループがなんで生まれるのか、3の累乗の0対1の割合はどこまで増加するのか、今後はこういった事を調べていきたいと思います。

ここまでお付き合いいただいて、ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?