2が現れる素数 という記事を読んだ。
「こんな数字いくらでもありそうだな」と思ったが、この記事のブコメで「奇跡」だとか「神」がどうのとか言ってる人たちがいたので、物申したくて検証してみました。
問題の数字はこれです↓
700000000000000007
000000222222000000
000022222222220000
000222000002222000
000000000022220000
000000000222200000
000000002222000000
000000222200000000
000022220000000000
000222222222222000
000222222222222000
700000000000000003
これが素数であることが奇跡なのだそうです。(ブログの筆者ではなくブコメの意見)
素数計数関数
まず直感で**「特定の数字が素数である確率」はそんなに小さくない**、そして奇跡的なパターンに見える数字はたくさんあると思いました。
前者について、素数の出現間隔はどのくらい広がっていくのだろう?流石に200桁となると小さいのか?と調べていると以下の 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個のうち素数あるのが確認できた。