1人が本棚に入れています
本棚に追加
/2ページ
ページ2
《素数判定式》
P=6n+1の時、Pが素数かどうかを判定する数式を考えます.
まず、Pより絶対値が小さい数は{-5、7、-11、13、-17 ・・・ 6n-11、-6n+7、6n-5、-6n+1}です.
Pがこれらの小さな数の倍数でなければ、Pは素数です.
ここで、前述の倍数かどうかを判定する三角関数を使います.
繰り返しの説明になりますけれど、Pが-5の倍数かどうかの判定は、次の式の計算結果から判定します.
y=sin((P+5)÷(-30))π
y=0ならPは-5の倍数です.y≠0なら倍数ではありません.
Pが7の倍数かどうかの判定は、次の式を計算して、y=0ならPは7の倍数です.y≠0なら倍数ではありません.
y=sin((P-7)÷42)π
Pが-11の倍数かどうかの判定は、次の式を計算して、y=0ならPは-11の倍数です.y≠0なら倍数ではありません.
y=sin((P+11)÷(-66))π
この後もPが13、-17、19、-23、25 ・・・ 6n-5、-6n+1まで、同様に考えます.
Pが6n-5の倍数かどうかの判定は、次の式を計算して、y=0ならPは6n-5の倍数です.y≠0なら倍数ではありません.
y=sin((P-6n+5)÷(36n-30))π
Pが-6n+1の倍数かどうかの判定は、次の式を計算して、y=0ならPは-6n+1の倍数です.y≠0なら倍数ではありません.
y=sin((P+6n-1)÷(-36n+6))π
そして、上記のy全ての積を作れば、いっぺんに結果が出せると思ったのです.そこで、次の数式を考えました.
Y=sin((P+5)÷(-30))π*sin((P-7)÷42)π*sin((P+11)÷(-66))π*sin((P-13)÷78)π ・・・・・・ sin((P-(6n-5))÷(36n-30))π*sin((P-(-6n+1))÷(-36n+6))π
この数式Yが素数判定式です.
与えられた数Pを右辺に代入して、Y=0となればPは合成数です.
Y≠0であればPは素数であると判定します.Pが、Pより小さい数の倍数になっていないからです.
例えばP=91の場合:
91より小さい数は、-5、7、-11、13、-17、19、-23、25、-29、31、-35、37、-41、43、-47、49、-53、55、-59、61、-65、67、-71、73、-77、79、-83、85、-89です.
よって、素数判定式は次の通りです.
Y=sin((91+5)÷(-30))π*sin((91-7)÷42)π*sin((91+11)÷(-66))π*sin((91-13)÷78)π*sin((91+17)÷(-102))π*sin((91-19)÷114)π*sin((91+23)÷(-138))π*sin((91-25)÷150)π*sin((91+29)÷(-174))π*sin((91-31)÷186)π*sin((91+35)÷(-210))π*sin((91-37)÷222)π*sin((91+41)÷(-246))π*sin((91-43)÷258)π*sin((91+47)÷(-282))π*sin((91-49)÷294)π*sin((91+53)÷(-318))π*sin((91-55)÷330)π*sin((91+59)÷(-354))π*sin((91-61)÷366)π*sin((91+65)÷(-390))π*sin((91-67)÷402)π*sin((91+71)÷(-426))π*sin((91-73)÷438)π*sin((91+77)÷(-462))π*sin((91-79)÷474)π*sin((91+83)÷(-498))π*sin((91-85)÷510)π*sin((91+89)÷(-534))π
計算結果は、Y=0となるので、91は合成数と判定します.
例えばP=-29の場合:
-29より小さい数は、-5、7、-11、13、-17、19、-23、25です.
よって、素数判定式は次の通りです.
Y=sin((-29+5)÷(-30))π*sin((-29-7)÷42)π*sin((-29+11)÷(-66))π*sin((-29-13)÷78)π*sin((-29+17)÷(-102))π*sin((-29-19)÷114)π*sin((-29+23)÷(-138))π*sin((-29-25)÷150)π
計算結果は、Y=0.008255・・・となります.
Y≠0なので、-29は素数と判定します.
(-29は29と解釈してください)
《この判定式の問題点》
数式Yは、このままでは計算に手間がかかります.多分、エラトステネスの篩をつかって素数判定を行なうよりも手間がかかるでしょう.
そこで、数式Yがsinの積になっているので、倍角の公式を応用するとか、複素関数を応用すれば簡略化できるような気がしたんですけども、どうも上手く行かないんですね.それで、今のところ手詰まり状態です.と云う事で、今回はここまでとします.なにか閃いたら別途記事を投稿します.
(了)
―― 奥付 ――
題名:素数を判定する為のちょっとしたアイデア(ベータ版)
著者:茜町春彦
最初のコメントを投稿しよう!