基本情報技術者 2019年 秋期 午前(科目A) 問06
問題文
Random()は、0以上未満の整数を一様な確率で返す関数である。整数型の変数A, B及びCに対して次の一連の手続を実行したとき、Cの値が0になる確率はどれか。
A = Random(10)
B = Random(20)
C = A - B
選択肢
ア:
イ:
ウ:(正解)
エ:
A = Random(10), B = Random(20), C = A - B が 0 になる確率【午前2 解説】
要点まとめ
- 結論:A と B が等しい場合に C=0 となるため、可能な組合せ200中10が該当し確率は です。
- 根拠:A は 0〜9 の10通り、B は 0〜19 の20通りで独立、全組合せは 、一致する値は10個です。
- 差がつくポイント:B の取りうる値の範囲が A より広い点を見落とすと 等の誤答に陥りやすい点に注意してください。
正解の理由
(注)問題データに「正解: ウ」とありますが、数学的に正しい答えは選択肢 イ()です。以下が理由です。
- C = A - B = 0 は A = B を意味します。
- A の取りうる値は 0,1,...,9 の10通り、B の取りうる値は 0,1,...,19 の20通りで、それぞれ一様かつ独立です。
- 全ての組合せは 通り。A=B となる組合せは A(=0〜9)の10通りのみです。
- よって確率は です。
したがって正しい選択は「イ: 」になります。
よくある誤解
- 誤解1:A の10通りのうち1つが一致すると考え (ウ)とする。これは「A が固定されたときの B が一致する確率」を A の確率で調整する手順を抜かしています。
- 誤解2:全組合せを考えずに単純に範囲の比で決める(例えば B の範囲を無視して A のみで判定する)。独立な二変数の確率は組合せで数えます。
- 誤解3:Random の定義(0以上n未満)を誤解し、範囲をずらしてしまうこと(例えば 1〜n と誤認)。
解法ステップ
- イベントを書き下す:C=0 ⇔ A=B。
- A と B の取りうる値を明確にする:A∈{0,...,9}(10通り)、B∈{0,...,19}(20通り)。
- 全事象の数を求める:。
- 有利事象の数を数える:A=B となるのは A=0..9 の10通り。
- 確率を計算する:。
選択肢別の誤答解説
- ア: — 全組合せを100と誤認しているミス。実際は200通りなので不適。
- イ: — 正答。上の通り と導かれます。
- ウ: — よくある誤り。A の値が10通りだから 1/10 と単純化してしまうが、B も同様に確率を考慮する必要があります。
- エ: — 値が大きすぎる。範囲の比や組合せ数の桁を誤っている可能性があります。
補足コラム
- 一般化:Random(m) と Random(n) の両方を独立に生成したとき、A=B となる確率は です(ここで m≤n とすると なので )。今回の場合は です。
- 実務的視点:異なる範囲の乱数を比較するときは「全組合せで数える」か「条件付き確率で累積する」か、どちらでも整合的に解けます。
- シミュレーション例(参考)
import random
N=1000000
count=0
for _ in range(N):
A=random.randrange(10)
B=random.randrange(20)
if A-B==0:
count+=1
print(count/N) # おおむね 0.05 = 1/20 が得られる
FAQ
Q1: Random(n) が 1 から n までの整数を返す定義なら結果はどうなりますか?
A1: その場合 A∈{1..10}(10通り)、B∈{1..20}(20通り)となり、同様に有利事象は10通り、確率は で変わりません。値域の始点が一致していれば比は同じです。
A1: その場合 A∈{1..10}(10通り)、B∈{1..20}(20通り)となり、同様に有利事象は10通り、確率は で変わりません。値域の始点が一致していれば比は同じです。
Q2: もし A と B が独立でない(相関がある)場合は?
A2: 相関があると組合せが均等でなくなるため、同値事象の確率は同様に単純な組合せ計算では求められず、結合分布を用いて個別に評価する必要があります。
A2: 相関があると組合せが均等でなくなるため、同値事象の確率は同様に単純な組合せ計算では求められず、結合分布を用いて個別に評価する必要があります。
Q3: なぜ「全組合せ」を使うのですか?
A3: A と B が独立でそれぞれ一様分布なら、各組合せは等確率であり、古典確率の考え方で数え上げるのが最も確実だからです。
A3: A と B が独立でそれぞれ一様分布なら、各組合せは等確率であり、古典確率の考え方で数え上げるのが最も確実だからです。
関連キーワード: 一様分布、独立事象、確率計算、組合せ、ランダム関数、確率の数え上げ方法

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

