2が現れる素数が奇跡だという人に物申す

  • 7
    Like
  • 0
    Comment

2が現れる素数 という記事を読んだ。
「こんな数字いくらでもありそうだな」と思ったが、この記事のブコメで「奇跡」だとか「神」がどうのとか言ってる人たちがいたので、物申したくて検証してみました。

問題の数字はこれです↓

700000000000000007
000000222222000000
000022222222220000
000222000002222000
000000000022220000
000000000222200000
000000002222000000
000000222200000000
000022220000000000
000222222222222000
000222222222222000
700000000000000003

これが素数であることが奇跡なのだそうです。(ブログの筆者ではなくブコメの意見)

素数計数関数

まず直感で「特定の数字が素数である確率」はそんなに小さくない、そして奇跡的なパターンに見える数字はたくさんあると思いました。

前者について、100個素数の出現間隔はどのくらい広がっていくのだろう?流石に200桁となると小さいのか?と調べていると以下の Wikipedia にたどり着いきました。

素数計数関数 - Wikipedia

10分ほど読んだけど216桁だと何%に収束するのかわからんかった😇

奇跡的に見える数字

そもそもこの数字、4隅のうち3つが 7 7 7 ときて、右下が3なのである。3ってなんだよ! どんだけ奇跡妥協してるんだよ!
奇跡的に見える数字なんていくらも考えられる。四隅の数字を別のものでもよいし、縁も全部0以外の数字で埋めてもいい。列の数を2つ削っても左右対称な余白に出来る。

同類の奇跡を探してみる

4隅(7,7,7,3)を別の数字に変えて素数判定をしてみます。(0は除き、4桁目(1の位)は 1,3,7,9 だけチェックしてます)

#!/bin/sh

p1=0000000000000000
p2=000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000

for i in `seq 1 9`; do
    for j in `seq 1 9`; do
        for k in `seq 1 9`; do
            for l in 1 3 7 9; do
                n="$i$p1$j$p2$k$p1$l";
                echo "$i-$j-$k-$l";
                echo $n;
                openssl prime $n;
            done
        done
    done
done


結果

チェックした 2941 個のうち、14個ありました。(openssl prime についてよく知りませんが 実行時間は 40s でした。)

1-1-9-1
100000000000000001000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000900000000000000001
2-3-5-7
200000000000000003000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000500000000000000007
2-6-3-7
200000000000000006000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000300000000000000007
3-3-8-1
300000000000000003000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000800000000000000001
3-8-9-7
300000000000000008000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000900000000000000007
4-7-9-3
400000000000000007000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000900000000000000003
5-6-2-1
500000000000000006000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000200000000000000001
7-1-6-3
700000000000000001000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000600000000000000003
7-5-5-1
700000000000000005000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000500000000000000001
7-7-7-3
700000000000000007000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000700000000000000003
7-9-4-1
700000000000000009000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000400000000000000001
8-2-6-1
800000000000000002000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000600000000000000001
9-7-5-3
900000000000000007000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000500000000000000003
9-9-8-3
900000000000000009000000222222000000000022222222220000000222000002222000000000000022220000000000000222200000000000002222000000000000222200000000000022220000000000000222222222222000000222222222222000800000000000000003

まぁこの中でポーカーするなら 7-7-7-3 がいいのかもしれないですね。

まとめ

やっぱり200桁だろうと4隅変えた3000個のうち素数あるのが確認できた。