5なら1-6の間、6なら0-6の間で、定規の長さまでにある長さをすべて測れる。いうのを完全ゴロム定規という。目盛りの数が5つになると、完全ゴロム定規は作れない。これは数学的に証明されている。目盛り5つ以上では、定規の長さが最も短いものを求める。それを最短ゴロム定規という。11だと10が測れない。完全ゴロム定規とはいえない。完全ゴロム定規が存在すれば、全体の長さは10になりそう(0+1+2+3+4=10)なんだけど、それは存在しない。全体の長さが11でゴロム定規になっているものが最短ゴロム定規。目盛り5つなら長さ11で見つかるからいいけど、見つからないなら伸ばしていきながら探すしか無い。目盛り5つくらいならともかく、20とかになるともう大変。数字の組み合わせのパターンもどんどん増えるし、長さがどうなるかもわからない。283がOGR-20だけども、見てるだけで目が回る。こんなもん手計算で求めてるとも思えず、とにかくコンピューターで求めたんだろうと思う。そのやり方がスマートな計算じゃなく、総当り的な力技であれど、ともかくできるんだろう。それだからこそ分割して配布する分散コンピューティングが使えるような気はするし。目盛り23個のものまでは、最短ゴロム定規が特定されていた。これ以上はちょっと計算量が膨大過ぎる、ということで、d.netが着手。24目盛りのOGR-24を、1572日かけて特定した。OGR-25は3006日かかった。OGR-26は簡単だったらしくて24日で済んだ。OGR-27は1822日で特定した。目盛りが増えると計算量も急増するはずだけど、参加者のコンピューターが高性能化していることもあって、大体5年に一回程度のペースで特定に成功してきている。今やっているOGR-28は、1000日ほどかけてまだ25%弱しか進んでいない。1000日前に比べてさほど民間のCPU性能が上がっているとも思えず、また参加者も減っているだろうから、苦戦が続きそうだ。私が何年も参加しているのが、このOGR探索。OGRはフェイズドアレイレーダーとか電波望遠鏡に応用されているらしいけれど、まあ、地味な数学的問題には違いない。華々しく重要と思われ、解決すれば商売になるから投資しましょう、というような問題ならそうなってるわけで、そうはならない地味な問題だからこそ、分散コンピューティングで微力を寄せ合って解くことの自己満足度が高いように思う。d.netがやらなきゃ放置されてしまう問題に思えるし。私が参加せねば誰もやらないぞ、と。まあOGRの儲かる利用法が見つかったら、いきなり投資が集まって凄い勢いで解決されていくかもしれんけど。どのプロジェクトに参加するかで、すでに挙げている通り、d.netに限らず、こういう分散コンピューティングプロジェクトは色々ある。入れるソフトウェアと登録手続きが違うだけで、インストールが終わればあとはやることに差はない。プログラムを実行して放置するだけ。私はd.netを勧めはするけれど、RC5-72解読はもう、特にやる意義もなくなってしまったプロジェクトではある。OGRは意義がなくなったりはしないのだけど、あまりGPGPUとか新CPUの新命令への対応など、技術的な更新が多くない。面白みはないかもしれない。(RC5-72はGPGPU対応)科学に貢献するにしても貢献する内容は他のがいいというなら、色々選べるBOINCでも、医学に早く役立ちそうなFolding@homeでも、素数でよく目立てるGIMPSでもいいわけだから、好みのプロジェクトを選べばよし。GPGPUとかを活用したいなら、各プロジェクトの対応状況をチェック。GPGPUなら対応してるところのほうが多いと思うが、例えばd.netのRC5-72なら、GeForceよりRADEONの方がかなり強力になる傾向が以前はあったりもしたらしい。d.netの場合、というか他のやつでもあると思うけど、参加者個人の貢献度を記録・集計するstatisticsがある。参加時にメールアドレスを登録しておくと、個人のstatisticsも見られる。参加開始からの総計と、昨日の計算量とが、日本時間で午前10時ごろに更新される。過去の日毎の計算量を見返すこともできる。終了したプロジェクトのものも参照できる。私はOGR-25に2002年12月24日に参加したのが最初だった。23歳のクリスマスイブをこのような地味な遊びに費やしていたことが今頃発覚。いや、2002年当時って、RC5-64解読成功で結構華やかだったけど。486DX4-75MHzのPC-9821Npもちょっと投入したりしてたな。長くやってると、こういうじじくさい振り返りもできる。これはサーバーに返送された回答についての集計なので、あえてサーバーに返さず溜め込んで(設定するとできる)一気に返送し、デイリーランキングをジャックするようなことも可能。これは参加初期から可能だから、数日溜め込んで一気に放出すれば、デイリー100位以内くらいならわりと容易にいけるよ。どんなPCでやるべきかさて、こんな話に興味を持つような人であればそれなりのPCを使ってることかと思うが、やっぱりこういうのに投入しないほうがよいPCもある。d.net華やかなりし頃、会社のPCで勝手にクライアントを走らせて横領に問われた事例がある。最近の企業ではそんなことできないところが多いとは思うけれど。私物のPCで、自宅なり電源の使用を許される場所で。驚異的なことに、勝手にd.netクライアントを走らせるコンピューターウィルスを作って撒いた奴がいて、往時の必死さが感じられる。おかげで、未だにd.netクライアントがセキュリティソフトに誤検知されたりするからホントろくでもない。基本的にインターネット接続が必要なので、セキュリティに問題があるXP以前のPCは勧めにくい。オフラインでd.netの問題・結果データをやりとりして実施することは可能ではあるけれど。常にCPUが、GPUも使うならGPUまでフル稼働状態になるため、放熱性能が低いPCも好ましくない。モバイルPCなどでは、一般的な使用状況に対して十分な冷却、くらいで設計されているので、CPUがフル稼働し続けるというのは想定外になってしまう。やってみて、ファンがやたらと高回転になってうるさいとか、ノートPCやタブレットなら外装まで触りづらいような熱さになるとか、そういう場合は控えたほうがいいかと思う。経験的にいうと、ノートPCだと、外装が温かいを通り越して熱くなるのは避けたほうがよさそう。クーリングファンの音があまりにもうるさくなるとかそういうのも。i系を積んでるようなハイスペックタイプは危ない感じ。デスクトップPCなら、よほど小型のものでなければ放熱に余裕はあるように思う。ノートでも、大型筐体のデスクノートの類なら比較的余裕があるようだ。ファンの回転が上がるのが音でわかるな、という程度。いずれにせよ、ある程度状況がわかるまでは、自分が目の前にいて、問題があったらすぐ中止できる状態でやるべき。数時間掛けてじわじわとすごい温度まで熱くなる、なんてパターンもあるので。家庭用のPCなんて24時間フル稼働できるように作ってない。最近のPCは、省電力機能が進歩して、処理をしていない時には大幅に消費電力・発熱が減る仕様が当たり前になった。それを踏まえて、平均的な使用状況を想定して冷却系も設計するから、フル稼働を続けると冷却設計を超える発熱になりやすい。そのかわり、オーバーヒートしそうになったら省電力機能が働き、壊れる前に温度を下げにかかるようにもなった。おかげで、オーバーヒートからそのまま焼死するような事態にはなりにくくなった。一日で熱で壊れた、とかは、よほど酷い設計の製品でなければないと思う。年単位の長期で見て寿命が縮むというのはある(特にモバイルノート)ので、そこは買い替えサイクルを踏まえながら判断を。インストールと実行ここまできて、ようやく実行方法に入るのだ。ダウンロード・インストール公式サイトのクライアントダウンロードページから、自分のシステムに適したものをダウンロード。64bitの[AMD64]というのを選ぶ。IntelのCPUでもAMD64。32bitの[Zipped]を選ぶ。(Installerはやや古いバージョンな上、そもそもZIPを解凍して実行するだけだから別に必要ないと思う)64bit版Windowsで、32bit版クライアントを動かすこともできるが、64bit版クライアントを使うほうが断然処理が速いので、間違えると損。dnetc.exeにアンチウィルスソフトウェアが反応することがあるけれど、ちゃんと公式サイトからダウンロードする分には大丈夫。Linuxの場合は、まあLinuxを使う人ならどれ使うかの判断くらいできると思うので省略。distributed-netでもインストールできた。バージョンがひとつ古かったけれど。RC5-72をやる場合は、GPGPU処理をしてくれるクライアントもある。Graphicsでも使えるクライアント。RADEONであれば、[x86/Stream]も使える。GeForceであれば、[x86-CUDA3.1]とかを使う、といいたいところだけど、ちょっと前のバージョンで止まっている。OpenCL版でいいと思う。CPU用クライアントとGPU用クライアント、両方同時に使うこともできるから、やる気なら両方いこう。初回実行ここからは、Windows版の話。Linux版はまあ、実行ファイルの呼び出し方が違うのと、コンソールアプリになってる程度の差なので、同じようにしてください。ダウンロードしたZIPファイルを、適当なフォルダに解凍する。Files以下にはしないほうがいい。-->こんなのが出る。