100年近く前の歯車式「数のふるい」をマイコン30個で再現、論文の記録漏れも発見

約100年前に数学者が自転車のチェーンや歯車で組んだ計算機械を、小さなマイコン30個で再現した作品が公開された。当時の論文に載った問題を当時の速さで解き直し、答えがすべて一致したうえで、論文に書かれていなかった記録まで見つけた。「A Tiny Sieve」としてHackaday.ioとGitHubに公開されており、ソフトウェアはMITライセンスで配布されている。作ったのはKB Sriram氏である。

再現したのは、米国の数学者D. H. Lehmerが作った「数のふるい」と呼ばれる機械だ。大きな数を素因数に分けるような問題では、答えの候補になる数を一つずつ試していく必要がある。ふるいは、ある数で割った余りが条件に合わない候補を次々に振り落とし、残ったものだけを人が確かめる。Lehmerは1928年に19本の自転車チェーンで毎秒50個、1932年に30個の歯車で毎秒5000個の候補を調べる機械を作った。作者によると、こうした専用の機械は1990年代の終わりまで、特定の問題で汎用のコンピューターより速かったという。

Sriram氏は、チェーンや歯車の1本1本をマイコンに置き換えた。小さな基板に8本足のマイコン「ATtiny412」を1個ずつ載せ、それぞれに1つの割る数を受け持たせる。全基板は1本の共通の線で合図を受け取って一斉に次の候補へ進み、条件に合わない基板がもう1本の線を引き下げて候補を落とす。すべての基板を通り抜けた候補だけを、Raspberry Pi Picoが確かめる。30枚の基板は、穴あき基板で作った背面の板に3列10枚で差し込んだ。

効果ははっきり出た。5283兆657億5370万9209という数の因数分解は、基板3枚のときは25分かかり、Lehmerの歯車の機械とほぼ同じだった。30枚にすると2分を切り、最大の毎秒50万個で動かせば11秒で終わる。

作者は仕上げとして、Lehmerが論文に載せた問題を、それぞれの機械と同じ速さで解き直した。答えはすべて論文と一致し、かかった時間もほぼ同じだった。ただし1928年の論文については、機械が止まった回数が、4回の試行のうち2回で論文の記述より1回多かった。作者は、当時の機械でも必ず止まったはずの候補だと確かめたうえで、論文を書く際に省かれたのだろうとみている。

30枚の基板のはんだ付けは240カ所になり、1カ所の不良でも計算がひそかに誤る。作者は治具で1枚ずつ配線の不良を調べてから書き込み、組み上げた後も起動のたびに全基板を自己診断させている。

関連情報

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!

最新記事

YouTube / PodCast

【PR】読んで役立つ注目記事

目次