乱数

完全にランダムなシャッフル再生は可能か(上) (http://hotwired.goo.ne.jp/news/20050928301.html)
完全にランダムなシャッフル再生は可能か(下) (http://hotwired.goo.ne.jp/news/20050929307.html)

つまるところ、コンピュータに真の乱数は作れるかという命題。
この記事で思い出したが、ずっと以前に乱数作りに苦労させられた事があった。
コンピュータ系の専門学校の卒業制作で数人のグループでゲームを作ることになったのだが*1その中でランダムに迷路を生成するために乱数が必要になったんである。ところが言語はPC用のCOBOL(笑)。当時ビジネス向けバッチ処理の定番言語だったCOBOLには当然の事ながら乱数なんて機能は無かった*2、しかたないので同じグループ内で明確にプログラムなんか組めない一人*3に「0〜9までの数字ができるだけランダムに登場するバカ長い配列を作るルーチン」(つまり、ソースコードには0〜9までの数字が出鱈目に沢山並んでいるだけ(笑)。)を作ってもらってそれと時計から取った数値を組み合わせて切り抜けた。
いやいや懐かしい。その頃からコンピュータに完全な乱数を作らせるには限界が有ると思っていたので、Hotwiredの記事は興味深い。*4

*1:というか、私がゲームを作ろうと言い出したんである。当時同じグループだった人、スマヌ。

*2:Fortranだったらその手のライブラリが有った筈だが

*3:当時の専門学校には往々にしてこういう人が居たんである。

*4:逆に疑似乱数を発生する機能を持つ言語で、乱数ルーチンを複数組み合わせて「一定の傾向を持つ乱数ルーチン」(例えば小さい数字が出やすくて大きい数字が出にくいとか)を作るなんてことは中学くらいからやっていた(苦笑)。なつかしい限り。