MENU
273,294

スレッドNo.2401

コラッツ擬き

自然数を3で割った剰余で分けると
3n   → 3で割る
3n+1 → 2倍して、1を足す
3n+2 → 2倍して、1を引く
最終的に、全て1になる。
2,3の操作を逆にしただけで難度が増すのが不思議です。

引用して返信編集・削除(未編集)

mod3のコラッツ擬きですが、
https://www.lab2.toho-u.ac.jp/sci/is/shirayanagi/lab/dl/2014/yamanaka.pdf


3n → 3で割る
3n+1 → 4倍して2を足す
3n+2 → 4倍して1を足す

というコラッツ擬きを考察したものがありました。上記のコラッツ擬きは、

1→6→2→9→3→1
7→30→10→42→14→57→19→78→26→105→35→141→47→189→63→21→7

という2種類のループのいずれかに到達しますが、
1~1000で
1を含むループに到達するのが79個で7.9%
7を含むループに到達するのが921個で92.1%
1~10000で
1を含むループに到達するのが4.2%
7を含むループに到達するのが95.8%
でした。

4倍だと1あるいは7に到達するのが早いので、

3n → 3で割る
3n+1 → 5倍して1を足す
3n+2 → 5倍して2を足す

としてみると、上記のコラッツ擬きは、1000000までで

4→21→7→36→12→4
8→42→14→72→24→8

という2種類のループのいずれかに到達しましたが、4あるいは8に到達するまでに、例えば初期値10の場合は4に到達するまでに43回の操作が必要で途中で最大値3186に達し、初期値38の場合は8に到達するまでに386回の操作が必要で途中で最大値12317562に達しました。100000までで最大値を更新した初期値と、その到達先、それに要した回数、途中で達した最大値は以下のようになりました。

10 4 43 3186
38 8 386 12317562
253 8 755 60008787
325 4 204 61921287
443 8 509 2792211912
550 4 2832 366801780869709687
1973 4 5101 68833498238053197854493312
13301 4 2815 99325854394514885320584021
16955 8 7959 724763997101386821051531936
20776 4 4265 2933570318473933999921361031139062
59113 4 7510 1470455996222092703757506943141135411
85925 4 13246 340816539304436064398165865804406618021466224558460882751162

4を含むループと8を含むループに到達する初期値の個数は、
1~1000で
4を含むループに到達するのが688個
8を含むループに到達するのが312個
1~10000で
4を含むループに到達するのが6417個
8を含むループに到達するのが3583個
1~100000で
4を含むループに到達するのが62273個
8を含むループに到達するのが37727個
1~1000000で
4を含むループに到達するのが615220個
8を含むループに到達するのが384780個
でした。

上記のコラッツ擬きを初期値が負数の場合に拡張すると-1←→-3というループが現れたので、

3n → 3で割る
3n+1 → 5倍して2を引く
3n+2 → 5倍して1を引く

としてみると、上記のコラッツ擬きは、1000000までで全て1←→3というループに到達しました。上記のコラッツ擬きでは、例えば初期値10の場合は1に到達するまでに88回の操作が必要で途中で最大値3564に達しました。100000までで最大値を更新した初期値と、それに要した回数、途中で達した最大値は以下のようになりました。

10 88 3564
25 116 10314
70 191 431604
82 201 124755588
140 707 18169045713
502 3077 3550975356647313
619 12254 570087155057912340205131104638425588
54847 12687 10089667480019633619334988145153010515029612088

さらに、ksさんのコラッツ擬きでは、

3n → 3で割る
3n+1 → 2倍して1を足す
3n+2 → 2倍して1を引く

だったので、

3n → 3で割る
3n+1 → 5倍して1を足す
3n+2 → 5倍して1を引く

としてみると、上記のコラッツ擬きは、1000000までで

1→6→2→9→3→1
4→21→7→36→12→4

という2種類のループのいずれかに到達しましたが、1あるいは4に到達するまでに、上記のコラッツ擬きでは、例えば初期値5の場合は1に到達するまでに95回の操作が必要で途中で最大値20934に達しました。100000までで最大値を更新した初期値と、その到達先、それに要した回数、途中で達した最大値は以下のようになりました。

5 1 95 20934
44 1 70 40986
86 1 810 3419283861
235 1 488 46196151066
820 1 1167 3841972080939
1310 4 1080 8170346115441
1315 1 7145 157854812287762612809
1790 1 3337 978623937310722214986
8645 1 4953 209921511803443804073439891
8770 1 6819 64901218184254749066376852519465177611
68455 1 5931 533522890015686639949625171648394237684

1を含むループと4を含むループに到達する初期値の個数は、
1~1000で
1を含むループに到達するのが901個
4を含むループに到達するのが99個
1~10000で
1を含むループに到達するのが8774個
4を含むループに到達するのが1226個
1~100000で
1を含むループに到達するのが87410個
4を含むループに到達するのが12590個
1~1000000で
1を含むループに到達するのが874580個
4を含むループに到達するのが125420個
でした。

引用して返信編集・削除(未編集)

このスレッドに返信

ロケットBBS

Page Top