2

コラッツ予想を2進法で探求するための準備

198
1
$$$$

はじめに

前の投稿、読んでくれた方々、ありがとうございます。
えどがわさんの投稿が新鮮な刺激になって、色々やってみたいことが増えてきました。
その前に、今までやってたことをちょっと整理してお伝えしたいと思います。

2進法モノクロ表示

個人的には『パンダ表示』という言葉を流行らせたいところです。
前の投稿でもお目にかけましたけど、直感的にわかりやすくていいです。

『2で割る』こと

何がいいかって、任意の自然数は2進法で表すことができますよね。んで、『2で割る』って操作は、1ビット右にずらす、『2をかける』って操作は、1ビット左にずらすことに相当します。例えば、
$28_{(10)}=11100_{(2)}$
$14_{(10)}=1110_{(2)}$
$7_{(10)}=111_{(2)}$
ここで、下付きの括弧の中の数字は、『何進法で表しているか』を表す数字です。
『28』から始めて、2で2回割って『7』になる様子を、2進法モノクロ表示してみますね。
!FORMULA[3][38768244][0] $28→14→7$

1個ずつ右にシフトしていく様子がわかりやすくて、よくないですか?

偶数は2進法で表すと必ず末尾が『0』になります。なので、『2で割る』という操作は、2進法では『末尾の0を取る』ことに相当します。コンピュータ科学を学ぶ方々には基本中の基本なんでしょうね。私も昔、アセンブラに関する初心者向けの本で読んで、『へー!』って思いました。考えてみれば、10進法で表した自然数、10の倍数なら末尾に『0』が付くし、『10で割る』のは『末尾の0を取る』ってところ、一緒ですね。

『3倍して1を加える』という操作

すみません、無駄話が長くて。先を急ぎましょう。
『3倍して1を加える』という操作は、${ 3n+1=2n+n+1 }$なので、${ n }$を2進法で表したやつを1ビット左にずらしたビット列と、もとの${ n }$を2進法で表したビット列と足し算して、さらに最下位ビットを繰り上げることになりますね。(あー、言葉にすると、わかりにくいなー、ごめんなさい。)
具体的に見ていきましょう。
例えば、$n=9$として、${3 \times 9 +1 }$を、順番にやってみます。
まず、${3 \times 9 =9+9 \times 2=27}$、これを2進法のモノクロ表示(『パンダ表示』と呼びたい)しますよ。
9+9×2=27 9+9×2=27
1行目が $ \ 9_{(10)}=01001_{(2)}$
2行目が$18_{(10)}=10010_{(2)}$
3行目が$27_{(10)}=11011_{(2)}$
になってるのがわかるかな?
みんなー、このくらいは大丈夫だよね。
じゃぁ、ここに1を足しまーす。
27+1=28 27+1=28
1行目が$27_{(10)}=11011_{(2)}$
2行目が $1_{(10)}=00001_{(2)}$
3行目が$28_{(10)}=11100_{(2)}$
2回繰り上がって下2桁が0になってますね。

初期値9→28→14→7→…→1

普通のコラッツの手順で、初期値9で1になるまでをモノクロ(パンダ)表示してみます。
通常のコラッツ変換で初期値9から1になるまで 通常のコラッツ変換で初期値9から1になるまで
やっぱり2で割るの、まどろっこしいですよね。
ぜーんぶ右に詰めちゃえばいいじゃん、ってのが次のやつ。

『2で割れるだけ割ってみました』的な何か

初期値9から偶数を省略して、
9→7→11→17→13→5→3→1
って数列をパンダさんにしてみると、
コラッツ変換偶数省略バージョン初期値9 コラッツ変換偶数省略バージョン初期値9
んー、これはこれでスッキリはしてるんだけど、なんか大事なことが抜けてるような感じがするんですよね。それで考えたのが、『奇数に対応するビット列に対して、1ビット左にシフトしたやつを元のビット列に足して、最下位ビットを繰り上げる』って操作(要するに”3n+1”だね)を繰り返してったのが次のやつ。

『2進3倍繰上げルール』

『2進3倍繰上げルール』の初期値9で1になるまで 『2進3倍繰上げルール』の初期値9で1になるまで
この表し方の何がいいかって、1回の”3n+1”の操作のあと、2で割らなきゃいけない回数が、最下位ビットのズレとして一目でわかることですかね。
さらにそのおかげで、図全体の長方形の縦と横の長さについて、次のことが言えます。
(縦の長さ)-1:初期値の奇数から最終値『1』になるまでの間に、何回”3n+1”の操作を施したか
(横の長さ)-1:同じく初期値の奇数から最終値『1』になるまでの間に、トータルで何回2で割ったか
ごめんなさい、ここで安易に『最終値』なんて言葉は使うべきでないかもしれないですよね。あくまでまだ『1にならないで繰り返す反例』が見つかってないだけですもんね。

結び

ここまで読んでくださったみなさん、ありがとうございました。
なんだかんだで前の投稿と大した違いはなかったですね。
お詫びに、これからいくつか画像を載っけます。
それらから読み取れること、コメント欄でお知らせいただけるとありがたいです。
悪名高き初期値27
ビット列が一番長いのどーこだ? 悪名高き初期値27
ビット列が一番長いのどーこだ?

『第1しましましっぽの定理』
初期値30037って初期値7といっしょやん! 『第1しましましっぽの定理』
初期値30037って初期値7といっしょやん!

『第2しましましっぽの定理』
初期値5126371ってまたすぐ初期値7と一緒になるやん! 『第2しましましっぽの定理』
初期値5126371ってまたすぐ初期値7と一緒になるやん!

『黒三角の定理』初期値2^20-1
ビット列が長くなるときってどういうときかわかりますねん 『黒三角の定理』初期値2^20-1
ビット列が長くなるときってどういうときかわかりますねん

『白三角の定理』初期値2^20+1
上位ビットは”3の累乗”やん! 『白三角の定理』初期値2^20+1
上位ビットは”3の累乗”やん!

以上、ご覧いただき、ありがとうございました。
コメント、お待ちしてます。
m(_ _)m

投稿日:831
更新日:98
OptHub AI Competition

この記事を高評価した人

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

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

バッジはありません。

投稿者

20年くらい前からMathematicaを使って『コラッツ予想』を探求してます。

コメント

他の人のコメント

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