基本情報技術者試験 令和元年度 秋季 午前 問6
確率、疑似乱数についての問題。
--------------------------
令和元年度 秋期 午前 問6
Random(n) は、0 以上 n 未満の整数を一様な確率で返す関数である。整数型の変数 A、B 及び C に対して次の一連の手続を実行したとき、C の値が 0 になる確率はどれか。
A = Random(10)
B = Random(10)
C = A - B
ア
イ
ウ
エ
--------------------------
解説
確率の問題。
「Random(n) は、0 以上 n 未満の整数を一様な確率で返す関数」
とあるので、問題文の Random(10) が返す値は 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 の 10 種類のうちどれかであり(0 以上 n 未満の整数)、どれも確率は (一様な確率)となる。
A = Random(10)
B = Random(10)
なので、A と B の組合せ (A, B) のケースは A が 10 種類、B も 10 種類で、10 × 10 = 100 通りになる。
A と B の値はどれも一様な確率なので、この 100 通りも一様な確率で出現することになる。つまり、どれも出現する確率は になる。
100 通りある (A, B) のうち、C = A - B が 0 になるケースは A = B のときなので、
(A, B) = (0, 0)、(1, 1)、(2, 2)、(3, 3)、(4, 4)、(5, 5)、(6, 6)、(7, 7)、(8, 8)、(9, 9)
の 10 通りある。
(A, B) のどの組合せも出現する確率は一様なので、C = 0、つまり A= B となる確率は
(A = B となるケース数)/(全てのケース数)
=
ということで、問題の正解は選択肢ウ である。
Random(n) のような関数は実際に存在し、疑似乱数生成器と呼ばれる。
コンピュータ上で計算して乱数をつくる都合で真の乱数とはならないため、"疑似" とついている。
- 疑似乱数:一見すると乱数に見えるが、規則性や再現性がある。乱数の生成アルゴリズムとコンピュータの内部状況(計算過程)が分かれば、次の乱数が予測可能となってしまう。
- 真の乱数:規則性や再現性が一切ない。自然現象のような本当にランダムな現象をもとにしないと作れない。自然乱数とも呼ばれる。次の乱数は予測不可能である。
コンピュータ上で真の乱数を得るためには専用のハードウェアを用いることがある。
そのハードウェアだけで販売されているのかなと楽天を覗いてみたら、面白そうなものがでてきた。
|
画像だけ Web からコピペすると著作権侵害がこわいので、アフェリエイトの仕組みを活用しています。
もちろん、報酬はいったら嬉しいという下心はある(隠す気はない)。
前後の問題はこちら。