究極の素数を求める旅(2)

自宅にパソコンが来た
 何社か会社を変わって(笑い)、1987年頃だったろうか北海道庁の仕事でパソコン通信の運営を行う事になった。North−Windsと名付けられたNECのPCーVANを利用した全国区の「都市と農村を結んだネットワーク、生産者と消費者のダイレクトなネットワーク構築」を目指すものだった。横路知事の「新北海道総合計画(新長計)」の一環の調査事業だったのだが、内容は実証実験に比重を置いたケーススタディだった。このあたりの話しは1999年のNEC主催の「ネット文化祭」で「さらばPC−VAN」って企画で綴ったのだが、何時か取りまとめたものをアップしようと思っている。
 この事業推進のために実証実験機材としてNECの当時のPC98LTU(2)を8台購入した。その一台を自宅で電話開回線に繋いで使うことにした。なんせ「土日は休みです」みたいな運営事務局でいられない程North−Windsは活発な意見交換が行われていたのだった。
 このパソコンはグラフィック表示部分が独特で当時のパソコン通信で流通していたソフト(当時はPDS(パブリック・ドメイン・ソフトウェア)と呼ばれていた)の中でグラフィックをジェネリックに使っている(キャラクターしか使っていない)ソフトしか動かなかった。ただ、ROMにN88BASICが梱包されているマシンなので自宅でプログラム作りが出来る環境か整った。
 そこで考えたのが「素数計算」であった。
 パソコンを自動運転させて素数を捜す。これはパソコン黎明期に競われたゲームである。もちろん独自のプログラミングを駆使してより大きい素数を求めるものだ。素数を求める公式は既に既知のものである。これに適当に値を与えれば簡単に世界最大の素数を求められる。だが、1から始まり素数を積み上げて最大の素数を求めるのは当時の(1980年代)パソコンに対する技術的興味を満たす命題だったのだ。

フロッピー(FD)ベースの記憶装置の限界
 ここで「楽しく学ぶ素数」って観点で話しを進めよう。
素数とは「1か自分自身でしか整数として割り切れない数値」となる。並べると1、3、5、7、11、13、17、19、と続くのだけれど、その先はどれくらい多いのだろう。感覚的には数字が大きくなる程素数の出現確率は下がると思われるけど、どれくらいの割合で降下するのだろう。
 そのあたりの知識は当時はまだインターネットが利用出来ない環境だったので解らなかった。結局、自分でプログラムを作って実証実験することにした。
 見つけた素数は取って置いて、次の数値の素数お検定に使わなければならない。つまり、見つけた素数は将来の素数検定において割る分母として利用しなければならない。コンピュータ的に言えば「見つけた素数は将来のわり算の分母としてファイルに保存しておかなければならない」って事になる。つまり、見つけた素数はファイル形式で保存する必要があるのだ。
 そのための「外部記憶装置」としてこのPC98LTU(2)はフロッピーしか持っていない。おまけにNEC標準の1.2Mである。それにも増してこのマシンのCPUクロックはCMOSの4MHzである。一晩プログラムを走らせて1000個程度の素数が計算できる。朝に中断処理をして暇を見つけてはプログラムを起動する。前回まで処理した素数をファイルから読みとって新たな素数を求めて計算を始める。そんなプログラムで半年程でついに素数でフロッピーは満杯になった。
  戻る 次へ

今来たページに戻る

2002.05.30 Mint