コンピューターで支離滅裂なものを作る事は可能か?


コンピューターというのは文字通り“計算をする機械”であり、整然とした数学の処理装置ですね。
ではそのコンピューターを使って”支離滅裂なもの”を作ることは可能なのでしょうか?
 
そう聞いて始めに思い浮かべるものは“乱数”でしょうか。
コンピュータープログラミングの勉強をしていると、初期の頃に乱数というものが出てくると思います。

普通はどのプログラム言語にも乱数の発生機能が用意されており、乱数の発生機能というのは文字通りランダムな数を出す機能です。
例えばC言語ならば rand() といった名前の関数があるはずです。この関数を呼び出すと、どんな数字が返ってくるのかは分かりません。指定した範囲の中で完全にランダムな数が返ってきます。

例えば1から1000までの間で乱数を5回発生させれば結果は

533 946 65 131 941

といった具体に一見ランダムな数が無秩序な並びで、別の言い方をすれば支離滅裂な数が出てくることになるでしょう。
ではコンピューターは支離滅裂なものを作れたのでしょうか?
 
しかしながらコンピュータープログラミングのマニュアルを良く読むと乱数発生機能は正確には「疑似乱数を発生する」と書かれています。

“疑似”

です。「なんちゃって」です。
つまり「一見ランダムに見える数字」を数学的な計算にて発生しているのですよ。
なので乱数関数をもう一度呼ぶと、同じ数字が同じ順番で出てくるはずです。もちろんそれでは都合が悪い事があるのでプログラミングにて違う乱数が出るように作ることは出来ますが、それも始めの数を変えるなどするだけで、ある程度まで行ったところでまた最初に戻って同じ順番で同じ数字が出てくることになります。

つまり先の数字は完全に決まっていて予測も可能なのです。

いくつ乱数を出したらまた始めに戻るのかを“乱数の周期”と言ったりします。因みに周期が長い乱数ほど優秀であり、発生する機能を作るのは難しくなります。
少なくとも現時点で周期のない、つまり二度と同じ順番が出ない乱数発生機能は存在していないはずです。また理論的にそれが可能なのかどうかも良く分かっていません。
(もちろん外部から何らかのパラメータを取得したりすることで可能になりますが、完全に1台のコンピューターの中だけで完結する周期のない乱数は不可なはずです)
 
なのでコンピューターにて支離滅裂なものを作ることは不可能と言うことになるでしょう。
 
もしもこの世界が数学で出来ているとしたならば、完全にランラムなもの、支離滅裂なものが存在していないことになるでしょう。
逆に存在していればこの宇宙に数学に反するものが存在することを示唆する1つの根拠になるかもしれませんね。


戻る        トップページ