ゲームやらなにやらで、規則性のない情報を得るために、ランダム値を取得する機能が有ります。
これは、特殊な数式を除いたら、本当にゲームくらいでしか役に立たないのかもしれませんが・・・
細かい事を言うと、音楽プレイヤーなどのランダム再生とかでも、若干利用されていますし、無くなったら困る事だとは思います。
所で・・・
ランダムな値を取得する方法として、プログラム上ではランダム関数などがあります。
ランダムは、乱数表を用いた物から始まったのですが、それが、PCに限って言えば、疑似乱数を発生させる専用の装置が搭載されていたりと、どんどん進化しています。
では、それを利用する側はどうなのでしょうか?
乱数は一般的に0以上1未満の値が作られ
必要な範囲(たとえば0〜100)を得るために、数値を掛けた後、整数へ変換したりします。
こうしてみると、ランダム値は設定した範囲内で正しく取得されるような気がしますが、実際にはそうではありません。
たとえば、くじ引きなどをシミュレートする場合、
クジが5本有るとすれば、1〜5のどれかを示すようにすればいい事になりますが
実際のクジは、一本引かれると、残りが4本になります。
単純に1/5の確率で当たりが出るように設定した場合、5回引けば必ず当たる実際のクジとの乖離は著しいです。
じゃぁ、一本引く毎に確率を1/4、1/3と上げればいいという事でもありません。
当然ながら、1/5でも、一回目で当たる事があります。そうなれば、それ以降は確実に0%で無ければいけないからです。
この、有限のクジという方法を再現する場合、予めアタリ位置を決めて、前から順番に結果を出力するのが、クジらしい動きをしますが、
その場合、クジを引く前から何番目の人が当たるという事が決まっている事になり、公平性を欠く行いをしてしまう人も居るかもしれません。
その場、その場で確率を変動させて、尚且つ、出来るだけ現実に近い試行を行う事の出来る方法は、ランダムではなく、機能を作る開発者次第な事は、今も昔も変わらないままなのです。
要するに、ランダム値を取得する方法そのものが、どれだけ進化しても意味はないという事になります。
所で、それを逆手に取る事も出来ます。
SNSやら、ネットゲームやらにある、ガチャの機能は、コレを非常に有効活用しています。
ゲーム上のガチャは、ただのデータでしかないために、ハズレクジを何本用意しても、当たりクジを何本用意しても構わないのです。
でもまぁ、ハズレが先行していると、ゲームを利用する側としては、非常にむかつくのですけどね!
確率論が確率通り進まないランダム値は、確率が一定以下になると全く当たらなくなるという問題点を除けば、それほど悪いことではないことなのかもしれません。
ところで、あたしのサイトには、壁紙が10枚設定されています。
これは、完全ランダムで行われているので、適当に画面更新を行った場合、全部の壁紙が1枚ずつ表示されても良いですよね?
(注:そのような試行結果になる確率は、計算上ものすごく低い)
では、その結果
壁紙1 3回
壁紙2 2回
壁紙3 2回
壁紙4 2回
壁紙5 1回
5枚しか表示されませんでしたw
7枚か8枚は表示されて欲しかったですよ?
ランダムと言っても、きれいにばらける事は無いですね
所詮はこの程度でしょうか?
|