2

コラッツ予想について考えたこと(追加)

218
1

前回、前々回の投稿に、コラッツ予想について思いついたことを記録しました。
それでおしまいにしようと思ったのですが、ぼんやりと思い浮かんだことがあるので追加します。厳密な証明はしていません。

結論

よくわからない議論が続くと思うので、結論から書きます。

f:NNを以下で定義する。

f(1)=2.

n2に対して
f(n)={2n3 (n0mod6)4n13 (n1mod6)8n13 (n2mod6)16n93 (n3mod6)2n+13 (n4mod6)4n23 (n5mod6)

確率予想

nNに対し
f(n)の6による剰余は以下の確率をとる。
0または2または4となる確率=それぞれ 218
1または3または5となる確率=それぞれ 418

確率予想が成立する コラッツ数列は発散しない

説明

思いついたことのメモ書きです。

g:N{1}Nを以下で定義する。

g(n)={16n3 (n0mod2)4n2 (n1mod2)

コラッツ予想の言い換え

1f,gを適当に適用することで、任意の自然数を得る

コラッツ予想が成立する

↑これは 前回 説明しました。

f,gを図示すると以下のようなツリーになります。
fを適用すると下に移動します。(18128)
gを適用すると右に移動します。(8125498)
ツリー ツリー

1をルートとするこのツリー上に全ての自然数が現れる、というのがコラッツ予想の主張です(たぶん)。

例を挙げます。

8=ffgff(1)
876=gffgffff(1)

逆に言うと、任意の数からf1, g1を辿ってツリーの上に昇っていくと、やがて1に到達するだろう、ということです。

反例があるとすると

さて、ではコラッツ予想が成立しないとしたらどうなるでしょうか。
その場合は、このツリーの他にツリーが存在することになります。

そのツリーの形は次の2種類が考えられます。

  1. 上方向、左方向に無限に広がる
  2. 上方向には無限に続くが、左側はある時点で止まる

f1, g1で昇って行ってもきりがない、ということですが
(1)の場合は昇る最中にg1がいつまでも出続けます。
(2)の場合は、あるところからf1のみとなります。

(1)がありえないことの証明のようなもの

(2025/03/16追記 ↓この証明は誤りです)

直感的に(1)はありえないのではないか、と思います。
ちょっとあやしいですが以下の証明を考えました。

上記の(1)がありえないことの証明

(1)の形のツリーが存在すると仮定する。

nNに対し、無限に続くf, gの列が考えられる。

例えば
n=ffgffggg
(ツリーを遡っていく道筋に相当)

いま、f, gを並べた文字列を考え、nに対応させる。

n:ffgffggg

f1, g0と書き換え、先頭に「0.」を付けると、rR; 0<r1の2進表示を得る。

n:r=0.11011000

もとのf, gの列はあらゆる組み合わせをとるので、このようにして得られるr(0,1]区間の任意の実数を表現し得る。

したがって自然数nと実数rに「多:1」の対応を付けられることになり、不合理。
よって(1)の形のツリーは存在しない。

ツリーを遡る道筋と実数が対応付けられてしまうのでありえない、ということです。
(2025/03/16追記 ↑この証明は誤りです)

(2)の場合を考察

(2)の場合は、どの数列も遡っていく途中で必ずある数列に行き当たります。
ツリーの「一番左側」の数列です。
一番左側の数列はfのみで生成されています。

つまり、いろいろ書きましたが、結局fの振る舞いを調べれば十分だという事です。

コラッツ数列に立ち返って考えると、
(1)コラッツ数列がループする場合は「4n+1」の形の数は現れない
(2)コラッツ数列が発散する場合は、ある時点から「4n+1」を含まない数列になる
という訳です。

発散することはあるのか

ループの有無については全く考えが進まないので、発散する場合について考えます。

あらためてfについて考察します。

f(n)={2n3 (n0mod6)4n13 (n1mod6)8n13 (n2mod6)16n93 (n3mod6)2n+13 (n4mod6)4n23 (n5mod6)

(以下、合同式はすべてmod6で考えます)

コラッツ数列が発散するということは、f1が発散するという事です。
逆にfが「どんどん大きく」なればコラッツ数列が発散しないことになります。

確率を考えてみます

fが減少するのは n0,4のときです。

fが十分多く繰り返されたときに、n05の場合が同程度あらわれると仮定します。

nが大きければfは以下の値で近似できます。

f(n){23 (n0)43 (n1)83 (n2)163 (n3)23 (n4)43 (n5)

fの期待値を計算すると2になります。
つまり、fは指数関数的に増加していくことになります。

もう少し詳しく考えると、例えばn0となる場合、f(n)0,2,4に限定されます。(単純に計算すれば分かります)

つまり、fについて6つの場合分けを考えるのではなく、以下の18通りの場合を考えることができます。

n0 f(n)0,2,4
n1 f(n)1,3,5
n2 f(n)1,3,5
n3 f(n)1,3,5
n4 f(n)1,3,5
n5 f(n)0,2,4

これらが同程度あらわれると仮定すると、f(n)6による剰余は以下の確率をとることになります。

0または2または4となる確率=それぞれ 218
1または3または5となる確率=それぞれ 418

これが冒頭に書いた「確率予想」です。
期待値を計算するとおよそ2.2となり、若干増加率が上がり、やはり指数関数的に増加することになります。

実験します

これ以上は思考が進まないので実験して終わりにします。

pythonでf1,000回繰り返して、値と剰余を取得します。

def cal(n):
  s=divmod(n,6)[1]
  if s==0:
    m=divmod(2n,3)[0]
  elif s==1:
    m=divmod(4
n-1,3)[0]
  elif s==2:
    m=divmod(8n-1,3)[0]
  elif s==3:
    m=divmod(16
n-9,3)[0]
  elif s==4:
    m=divmod(2n+1,3)[0]
  elif s==5:
    m=divmod(4
n-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)

結果

初期値2の場合

mod 6出現数
0118
1220
2116
3221
4105
5220
初期値29の場合

mod 6出現数
094
1219
2108
3247
4112
5220
初期値7の場合

mod 6出現数
0130
1214
2110
3224
4106
5216

対数をとったグラフは線形に増加し、mod6の値の出現率もだいたい予想通りの結果になりました。
そもそもコラッツ予想が成り立っている初期値で実験しているので、当たり前と言えば当たり前です。
(しかしまあ、確率を仮定するのは直感としては本末転倒な気もします…)

あとがき

時間と知識があればもう少し考えられたかもしれませんが、ちょっと何と言うか…沼にはまっていく感じがするので笑、この辺りでお終いにしようと思います。
(誤りがあると思うのでご指摘いただけるとありがたいです)

投稿日:202494
更新日:315
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中