戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 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 より広い点を見落とすと 等の誤答に陥りやすい点に注意してください。

正解の理由

(注)問題データに「正解: 」とありますが、数学的に正しい答えは選択肢 イ()です。以下が理由です。
  1. C = A - B = 0 は A = B を意味します。
  2. A の取りうる値は 0,1,...,9 の10通り、B の取りうる値は 0,1,...,19 の20通りで、それぞれ一様かつ独立です。
  3. 全ての組合せは 通り。A=B となる組合せは A(=0〜9)の10通りのみです。
  4. よって確率は です。
したがって正しい選択は「イ: 」になります。

よくある誤解

  • 誤解1:A の10通りのうち1つが一致すると考え (ウ)とする。これは「A が固定されたときの B が一致する確率」を A の確率で調整する手順を抜かしています。
  • 誤解2:全組合せを考えずに単純に範囲の比で決める(例えば B の範囲を無視して A のみで判定する)。独立な二変数の確率は組合せで数えます。
  • 誤解3:Random の定義(0以上n未満)を誤解し、範囲をずらしてしまうこと(例えば 1〜n と誤認)。

解法ステップ

  1. イベントを書き下す:C=0 ⇔ A=B。
  2. A と B の取りうる値を明確にする:A∈{0,...,9}(10通り)、B∈{0,...,19}(20通り)。
  3. 全事象の数を求める:
  4. 有利事象の数を数える:A=B となるのは A=0..9 の10通り。
  5. 確率を計算する:

選択肢別の誤答解説

  • ア: — 全組合せを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通り、確率は で変わりません。値域の始点が一致していれば比は同じです。
Q2: もし A と B が独立でない(相関がある)場合は?
A2: 相関があると組合せが均等でなくなるため、同値事象の確率は同様に単純な組合せ計算では求められず、結合分布を用いて個別に評価する必要があります。
Q3: なぜ「全組合せ」を使うのですか?
A3: A と B が独立でそれぞれ一様分布なら、各組合せは等確率であり、古典確率の考え方で数え上げるのが最も確実だからです。

関連キーワード: 一様分布、独立事象、確率計算、組合せ、ランダム関数、確率の数え上げ方法
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について