大学院生がパチスロの収益で新NISAをするブログ

大学院生のことねがパチスロの収益で新NISAをし資産1000万を目指す

乱数についての自己解釈

そもそも乱数とは規則性が無く予測不可能な数である

その数を使って本来はランダムな物事を決定するのだが、コンピュータにおいて乱数は計算によって求める為「擬似乱数」という扱いになり、厳密には乱数では無い

ゲームなどにおけるランダム要素は全て擬似乱数によって管理されている

 

ここでゲームなどでよく使われている乱数の関数を説明する

(私はc言語しか触ったことがないので、他のプログラミング言語では他の乱数生成関数を使ってる可能性もあるが、ここでは省略)

 

・rand関数

これは乱数を取得する関数であるが、1度関数をリセットしない限り同じ乱数を表示する

これはプログラムのテストプレイで正しく関数が実行されているか確認する時に使うが、実践ではほとんど使わない

 

・srand関数

これも乱数を取得する関数であるが、何を基準にして乱数を生成するか決める為毎度違った乱数が生成される

ここで乱数を生成するのに基準となるのがtime 関数とgettime関数

 

・time関数

time関数とはある基準時間からどれだけ時間が経ったかを返す関数である

 

これをrand関数で用いると経過時間によって乱数が変わるので常に変化した乱数を表示できるが、経過時間が同じであれば常に同じ乱数が生成される

 

閑話休題

昔のゲームのRTAで乱数調整というものを聞いたことは無いだろうか

やってることはこれである

時間経過によって乱数が定められるので、ゲーム内の乱数が最適になるようにゲームを起動してからの時間を計測しプレイしている

 

・gettime関数

これは日付と時刻を取得している

 

これをrand関数で用いると日付と時間に対応した乱数を生成するので、経過時間関係なく乱数を生成することが出来る

 

閑話休題

ゲーム機内部に時計機能があるゲームではこの関数を用いているのでゲーム機内部の日付を調整して乱数調整を行っている

また、最近のゲームはネットワークに繋がっているのでネットワーク上の日付を参照して乱数を生成しているので乱数調整がほぼ不可能なのが現状である

 

普段ゲームをプレイする上で乱数生成を気にする必要は無いが、知っていると内部的な仕組みを楽しむことが出来るので新たな楽しみ方が出来る

それだけ出なく、陰謀論のような「俺だけ後攻になるように運営に設定されている」などの被害妄想が減る

一々運営側が個人の嫌がらせの為に乱数を介入させずにこのユーザだけ不利に設定するような面倒臭い手間を加えるとは思えない為

 

 

自分の理解の範囲と分かりやすさ重視で書いているので厳密性は無いです

間違いがあればご指摘お願いします

終わり