うえぽんSW局

古いタイプの日記ブログです。気まぐれに更新してます。

2020年12月

 大変珍しい連続素数日が訪れたので、さぼっていたブログを久々に更新です。

 日付をyyyymmdd形式の8桁の値とみなしたとき、その数が素数となるのを素数日と呼んでいますが、今日と明日は20201231と20210101となりそれぞれ素数となります。
 連続で素数日となるのは大変珍しいです。なにせddの部分は奇数と偶数(2の倍数)が続くことが多いからです。連続するためには31日と翌月1日のパターンとなります(あと、これは忘れやすいですが、うるう年で2月が29日あるときも連続素数日になる可能性があります)。
 さらにそれが年末年始の年またぎとなるともっと珍しくなります。

 そんな珍しい連続素数日ですが、何かあるわけでもなく「だから何?」と言われればそれまでです…。

 ちなみに次回の連続素数日は2028年の2月。
 今回同様の年末年始の連続素数日となると2029年の大みそかとなります(これは意外と早くに来る?)。

 連続する素数日については数年前のエントリーに書いているのでそちらを参照。
 20世紀と21世紀の素数日を再掲すると以下の通り。

 20世紀
 19130731, 19130801
 19210531, 19210601
 19240229, 19240301
 19250131, 19250201
 19301231, 19310101
 19500331, 19500401
 19721231, 19730101
 19781231, 19790101
 19790131, 19790201
 19830331, 19830401
 19871231, 19880101
 19900831, 19900901
 19971031, 19971101

 21世紀
 20020531, 20020601
 20170831, 20170901
 20180731, 20180801
 20201231, 20210101
 20280229, 20280301
 20291231, 20300101
 20361031, 20361101
 20640331, 20640401
 20680831, 20680901
 20750131, 20750201
 20800229, 20800301
 20800531, 20800601
 20811031, 20811101
 20930731, 20930801

 では、よいお年を。
このエントリーをはてなブックマークに追加

 ふと小改良を思いついたのでやってみた。
 断っておくと改良でなく改良なのであしからず。

 本題の前にまず通常のやり方を簡単に説明。
 まず1×1の正方形内にランダムに点を打つ。点の総数はN。
 下の図のような円の内側に入った点の数をカウントする。そのカウントをPとする。
 monte_pi_01
 正方形の面積は1、1/4円の面積はπ/4。
 点の数NとPの比率も面積の比率に近似するはずなので、そのことからπの近似値が以下のように求まる。
 π≒4P/N

 以上が通常のやり方だ。

 そして今回思いついた小改良は上図の円の部分を、下図のような扇形を二つ重ねた図形に置き換えるというものだ。
 monte_pi_img02
 この図形は小・中学校の算数や数学でよく見かけるやつで面積はπ/2-1となる。
 そしてπの近似計算は、
 π≒2(P/N+1)
 ということになる。

 さて、この小改良の結果はというと、
 3回中2回は通常のやり方よりも若干高い精度になった。
 しかし、残りの1回は通常のやり方の方が良い結果となってしまった。

 点の総数を増やせばもっと傾向が変わるのではないかと1万点、1億点と増やしていったが、不思議とその傾向は変わらなかった。
 3回中2回は良い結果、残り1回は悪い結果という具合だ。
 どうやら乱数を使ったアルゴリズムのゆえか、運の良い場合と、運の悪いランダムで訪れるらしい。

 こんなものを改良と言うのはおこがましいかもしれない。改良と言ったところだろう。

 ついでに下の図のようにしたらどうなるのかも検証してみたが、これは通常のやり方に対して完敗だった。
 monte_pi_img03

 ちなみに、Pythonを使って検証したが、10億点以上ともなるとかなりの計算時間となる(うちのしょぼPCでは1時間近くかかった)。
 10億点やっても円周率の精度は3.141までは一致するが、それ以降の桁はプログラム実行のたびに一致したりしなかったりと心許ない感じ。
 モンテカルロ法で高い精度の円周率を求めるのはあまりお勧めしない。その計算時間で他のやり方を試した方が良い。
このエントリーをはてなブックマークに追加

↑このページのトップヘ