「どんな数字でも最後は1になる」ってほんと?──コラッツ予想を遊んでみた
こんにちは!kenjiです。
突然ですが、「どんな数字でも最終的に1になるルール」って聞いたら、 ちょっと不思議じゃないですか?
例えば、19とか、87とか、1000000でも。 適当なルールに従って数をいじっていくと、なぜか最後は「1」に収束する。
そんな夢みたいな話が、コラッツ予想(Collatz Conjecture) です。
そもそも、コラッツ予想ってなに?
まずはルールを紹介します。
スタート:任意の正の整数を選びます
操作:
- 偶数なら → 半分にする(n → n / 2)
- 奇数なら → 3倍して1足す(n → 3n + 1)
これをずーっと繰り返していくと、どんな数字も最終的には1に到達するっていう予想なんですね。
たとえば、6
から始めると:
|
|
ちゃんと「1」になりました。おかえりなさい!
コードでやってみよう:Pythonでコラッツ
さて、こういうときはコードで試すのが早い! Pythonで「コラッツ数列」を出力してみましょう。
|
|
実行すると:
|
|
みごとに1に到達します。 けっこう寄り道してるのに、最後はしっかりゴールイン!
ちなみに 29 から始めても、同じように1に到達します。
|
|
実行すると
|
|
なんと、111ステップもかかります!
しかも、途中で9000以上まで膨れ上がる場面も。 めちゃくちゃ寄り道してからゴールインするパターンですね。
で、結局なにがすごいの?
この予想の何がすごいかというと、
証明されていないのに、どんな数でやっても1になるっぽい
ってところです。
え?じゃあ、1兆とか、1京(けい)とかは…?
と思った方、鋭い。 実際に計算機を使って「2の68乗」くらいまでは確かめられてて、 すべて1に到達しています。信じられない…。
でも、「全部そうなる」と理論的に証明されたわけではないんです。 これが数学の世界でいう「未解決問題」。
コラッツさんって誰?
で、ここまで読んで「そもそもコラッツって誰?」って思いますよね。 ちゃんと紹介します!
- 名前:ローズ・コラッツ(Lothar Collatz)
- 国籍:ドイツ
- 生年:1910年〜1990年
- 肩書き:数学者(関数解析や数論の分野で活躍)
1937年にこの予想を提案して、 その後、80年以上にわたって誰も証明も反証もできていません。
ちなみに、この問題はあまりにシンプルなのに奥が深すぎて、 あのポール・エルデシュ(超有名数学者)すらこう言ったとか。
「数学はまだコラッツを扱うには未熟だ」
つまり、人類の数学がこの謎にまだ追いついていない説…。
「難しい数式」は必要ない
コラッツ予想のいいところは、誰でも遊べることです。
紙とペンがあればできます。 Pythonでコードを書けば、自動で試せます。 それでいて、最先端の数学者たちが本気で挑んでる。
なんか、ワクワクしません?
おまけ:一気に試すコード
いろんな数字をまとめて試すコードも載せておきますね。
|
|
これは「1~20」のコラッツ数列を一気に出してくれます。
結論:この世界、やっぱり不思議だ
というわけで、コラッツ予想。
- めちゃシンプルなのに
- 誰も証明できなくて
- 数学界では大問題
っていう、不思議のかたまりみたいな存在でした。
プログラミング初心者でも試せるので、ぜひ遊んでみてください〜!
おすすめリンク(興味ある人向け)
- Wikipedia: コラッツ予想
- Terence Tao 論文(英文)
- Pythonのビジュアライズ版作ってみるのも楽しいですよ!(要望があれば作ります)
もっとこういう「不思議系数学×プログラミング」ネタが知りたい人は、 お気軽に「もっと教えて」とリクエストしてみてください。 そのうち、リーマン予想とか素数の話とか、いろいろ紹介しますね!
📮おわり!