前回、前々回の投稿に、コラッツ予想について思いついたことを記録しました。
それでおしまいにしようと思ったのですが、ぼんやりと思い浮かんだことがあるので追加します。厳密な証明はしていません。
よくわからない議論が続くと思うので、結論から書きます。
確率予想が成立する
思いついたことのメモ書きです。
コラッツ予想が成立する
↑これは 前回 説明しました。
ツリー
逆に言うと、任意の数から
さて、ではコラッツ予想が成立しないとしたらどうなるでしょうか。
その場合は、このツリーの他にツリーが存在することになります。
そのツリーの形は次の2種類が考えられます。
(1)の場合は昇る最中に
(2)の場合は、あるところから
直感的に(1)はありえないのではないか、と思います。
ちょっとあやしいですが以下の証明を考えました。
(1)の形のツリーが存在すると仮定する。
例えば
(ツリーを遡っていく道筋に相当)
いま、
もとの
したがって自然数
よって(1)の形のツリーは存在しない。
ツリーを遡る道筋と実数が対応付けられてしまうのでありえない、ということです。
(2025/03/16追記 ↑この証明は誤りです)
(2)の場合は、どの数列も遡っていく途中で必ずある数列に行き当たります。
ツリーの「一番左側」の数列です。
一番左側の数列は
つまり、いろいろ書きましたが、結局
コラッツ数列に立ち返って考えると、
(1)コラッツ数列がループする場合は「
(2)コラッツ数列が発散する場合は、ある時点から「
という訳です。
ループの有無については全く考えが進まないので、発散する場合について考えます。
あらためて
(以下、合同式はすべて
コラッツ数列が発散するということは、
逆に
つまり、
もう少し詳しく考えると、例えば
つまり、
これらが同程度あらわれると仮定すると、
これが冒頭に書いた「確率予想」です。
期待値を計算するとおよそ
これ以上は思考が進まないので実験して終わりにします。
pythonで
def cal(n):
s=divmod(n,6)[1]
if s==0:
m=divmod(2n,3)[0]
elif s==1:
m=divmod(4n-1,3)[0]
elif s==2:
m=divmod(8n-1,3)[0]
elif s==3:
m=divmod(16n-9,3)[0]
elif s==4:
m=divmod(2n+1,3)[0]
elif s==5:
m=divmod(4n-2,3)[0]
return int(m)
import math
import sympy
n=2 #初期値
for i in range(1,1000+1):
print(f'{math.log(n)}\t{divmod(n,6)[1]}')
n=cal(n)
mod 6 | 出現数 |
---|---|
0 | 118 |
1 | 220 |
2 | 116 |
3 | 221 |
4 | 105 |
5 | 220 |
mod 6 | 出現数 |
---|---|
0 | 94 |
1 | 219 |
2 | 108 |
3 | 247 |
4 | 112 |
5 | 220 |
mod 6 | 出現数 |
---|---|
0 | 130 |
1 | 214 |
2 | 110 |
3 | 224 |
4 | 106 |
5 | 216 |
対数をとったグラフは線形に増加し、mod6の値の出現率もだいたい予想通りの結果になりました。
そもそもコラッツ予想が成り立っている初期値で実験しているので、当たり前と言えば当たり前です。
(しかしまあ、確率を仮定するのは直感としては本末転倒な気もします…)
時間と知識があればもう少し考えられたかもしれませんが、ちょっと何と言うか…沼にはまっていく感じがするので笑、この辺りでお終いにしようと思います。
(誤りがあると思うのでご指摘いただけるとありがたいです)