わ た し の 素 数
あなただけの素数を探そう
最終更新日:2004-12-29 (他の人と協力して一緒に素数を探したいに、マーク付きファイル添付形式に改造したスクリプト公開)
「史上最大の素数発見」というニュースが、新聞などのマスコミに載っていました。
こういった素数の探索は、天才数学者だけが行うものなのでしょうか?
いえいえ、実は誰でも探せるものなのです。
こういった発見は、スーパーコンピュータか、それに匹敵する数万人参加の分散コンピューティングでないと見つけられないのでしょうか?
史上最大となる素数は、大量の高速なコンピュータが無いと難しいです。
しかし数千桁の素数なら、個人でも10分足らずで探せてしまうのです。
世界にまだ知られていない素数を、こんなに簡単に見つけることが出来るのです。
このページは、個人が手軽に探せる、あなただけの素数の探し方を解説するページです。
誕生日や結婚記念日...そんなあなただけの特別な数字を絡めて、あなただけの素数を探し求めてみませんか?
1と、その数字以外の数では、割り切れない数のことです。
あ、数といっても、自然数(正の整数)でして、小数点やマイナスの数字は使いませんよ。
例えば、5とか7とか11とか31が素数ですね。
逆に4(2×2)とか,10(2×5)とか,9(3×3)とかは割り切れるから、素数ではありません。
・ ウィキペディア:素数 - みんなで作るフリーの百科事典「ウィキペディア」の解説
・ 素数大好き - 平之内俊郎さんによる全国の素数愛好家の為のペイジ
・ 史上最大素数Top20 - 素数の種類別リスト - Top5000以上(全リスト)
proth.exeというソフトを使って実際に探してみましょう。
Windows版はこちらからダウンロードできます。
もちろん無料で利用できるソフトウェアです。
proth.exeはProthの定理というものを使って、素数を判定するプログラムです。
★proth.exeが探せる素数は3タイプ
・ k^n+1 (Generalized Fermat数)
・ k*2^n+1
・ k*2^n-1
「k.2」となっているのは、「k*2」と同じ意味です。
「^」という記号は指数を意味していて、普通印刷物などではKn+1といった形で表記されているのが一般的です。 kに2を,nに3を入れると、23+1 = (2*2*2)+1 = 9となります。
今回は、k.2^n+1で素数を探してみましょう。
Form → k.2^n+1で、このような入力画面になります。
ここに好きな数字を入れてみましょう。
今回は...そうですね、1990年にフィールズ賞を受賞した、森 重文教授の生年月日(1951年2月23日)をkに入れて、kはそのままで、指数nを2から5000まで変えていく形で探してみましょうか。
上のように数字を入れてStartボタンをクリックします。
その結果がこれです。
皆さんのパソコンでは何分かかったでしょう?
私のCeleron1400MHzでは、探索にかかった時間は24秒でした。
今回見つけられた素数で最大のものは、19510223*2^4621+1(1399桁)。
素数のデータベースで検索すると46000位あたりに位置します。(2004年1月29日現在。実際は5000位以下の素数は特別な形でないと登録を受け付けないため、本当に順位が競われるのは5000位以上から。)
こうやって、あなただけの素数を発見することができました。
画面で確認するだけでなく、Proth.exeの存在するフォルダと同じ場所にできるProth.logというテキストファイルを見ることで、計算結果全てを確認することができます。
turboさんが日付素数ランキングを開始されています。
素数を構成する係数、指数、底などに日付が含まれている場合、日付素数ランキングに登録し、ランキングを楽しむことも可能です。
5000位以内にランクするような大きな素数を発見した場合、The Prime Pagesのデータベースに登録し素数Top5000ランキングに参戦するという道もあります。
当方では、そこまではまだ調べられておらず、現在調査中です。
あなたの発見した素数が、既に他の人に発見されていないか検索してみましょう。
日本語でデータベース検索:The Prime Pagesの歩き方
[Book] 素数大百科(共立出版 Chris K.Caldwell編著 SOJIN編訳) - Caldwell氏制作の素数情報サイトThe Prime Pagesを編纂・翻訳。様々な形の素数の種類の解説から、Proth.exeやNewPGenについての解説や主な形式の素数Top20なども。
GIMPSや素数探索プロジェクトのような本格的な分散コンピューティングシステムを構築しての素数探しは、サーバ・クライアントシステムの開発,サーバの管理運営が必要と、なかなか困難です。ちなみにGIMPSはEntropia社が運営に協力しています。
そこで、協力者を募り、連絡を取り合える掲示板を設置しました。
数式と探す範囲を書いてみて下さい。(例:19510223*2^n+1で素数探してます。nの値が100000から120000まで探すの手伝って)
みんなで協力しながら探せる状況にしたいです。
・ 素数探索連携掲示板
添付ファイルにも対応しているので、数式だけでなく、NewPGenが生成したファイル(第二段階で解説)を添付することも可能です。
Kent WebさんのJoyful Noteスクリプトを使わせて頂きました。
現在では、「予約の完了」・「計算の終了」などのマークに対応した、改造したスクリプトを使っています。
もし、「自分たちだけでも独自に探したい」といった場合には、こちらのスクリプトを利用してみてはいかがでしょうか。
・Kent Web CGIスクリプト利用規程に沿います。
・マーク付きファイル添付掲示板 改造スクリプトのダウンロード (2004-12-25)
・Proth.exeで素数探索をしていたら、パソコンの動作が遅くなった
Option → Priorityが、Idle以外になっていませんか?
他のソフトウェアがCPUパワーを使用していない場合、Priorityを変更しても意味はほとんどありません。Idle設定にしておきましょう。
proth.exeは指定された数を全て素数判定するのではなく、ある程度proth.exe自身が、ふるい落とした上で探索するそうです。
proth.exeとは違う別のソフトを使って、もっと「ふるい落とし作業」を行ってからproth.exeで素数判定すると、高速化できます。
次はこれに挑戦してみましょう。
・ わ た し の 素 数 第二段階:計算候補をふるい落として高速化
このページを作るにあたって、Proth.exeの日本語での詳細な情報の提供など、野原さんからの多大なご支援・ご協力を頂きました。
本当にありがとうございました。
情報のご提供,このページに間違い等ありましたらMat(mat-t@mh1.117.ne.jp)か掲示板(旧)までご指摘頂ければありがたいです。
・Top - わ た し の 素 数 第二段階:計算候補をふるい落として高速化 - The Prime Pagesの歩き方 - 素数探索連携掲示板 - 分散コンピューティングの紹介 - GIMPS - 世界最大の素数を求め続ける
・Mat (mat-t@mh1.117.ne.jp)