日常生活で、急に大きな素数が必要になることってありますよね。
でもこれで安心!いつでもツイッターアカウントさえあれば、すぐに素数が手に入ります。
そうです。あなたは@primenumber_botにメンションを投げさえすればいいのです!
そしてこれが動作例:
@hamukazu 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567969
— 素数生成ボット(ベータ版) (@primenumber_bot) November 26, 2013
例えばこんなときに:
- RSA暗号の鍵ペアを手動で作りたくなったとき(公開でツイートするからセキュリティ筒抜けですけどね!)
- おしゃれな自作Tシャツのデザインに
- お守りに入れて魔除けに
クリスマスに素数のプレゼントはいかがですか?
以下解説
これは有名なMiller-Rabinのアルゴリズムというのを使っています。大きな数の素数判定でもわりと高速に計算できます。Miller-Rabinのアルゴリズムについては、ウィキペディアの解説がわかりやすいのでお勧めです。
さらに詳細な解説、とくに計算量については、こちらの本をお薦めします。
Randomized Algorithms (Cambridge International Series on Parallel Computation)
なんでこんなものを作ったのかというと、理由は主に2つで、1)世の中素数萌えというジャンルの人たちが結構な数いる。2)Miller-Rabinアルゴリズムはほぼソラでかけるので、実装コストが低い(つまりツイッターボットのHello Worldをやったような感覚)。
ソースコードはこちらです(BSDライセンスにしておきました)
http://github.com/hamukazu/primenumber_bot
これを期に、素数芸人としての地位を確立していこうかと思う。