科目B
令和7年度 基本情報技術者試験 科目B 公開問題 問5
次の記述中のaとbに入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。
予防接種の病気 X に対する予防効果を調査するために集めたデータの集計結果を基に,病気 X にかかるかどうかが,予防接種の有無に影響されないと仮定した場合の人数を計算する。この人数を理論度数という。表 1 に集計結果の例を示し,表 2 に表 1 を基に計算した理論度数を示す。
関数 f は,引数 data で受け取った集計結果を基に計算した理論度数を返す。引数と戻り値は二次元配列で,その行が表の行,その列が表の列に対応する。
表1 集計結果の例
単位 人
表2 表 1 を基に計算した理論度数
単位 人
注記 網掛けの部分は表示していない。
〔プログラム〕
| 病気 X にかからなかった | 病気 X にかかった | |
|---|---|---|
| 予防接種を受けた | 82 | 6 |
| 予防接種を受けていない | 58 | 8 |
| 病気 X にかからなかった | 病気 X にかかった | |
|---|---|---|
| 予防接種を受けた | a | (網掛け) |
| 予防接種を受けていない | (網掛け) | b |
○実数型の二次元配列: f(実数型の二次元配列: data)
実数型: t ← dataの要素の和
整数型: row ← dataの行数
整数型: col ← dataの列数
実数型の二次元配列: result ← {row行col列の 未定義の値}
整数型: r, c
for (r を 1 から row まで 1 ずつ増やす)
for (c を 1 から col まで 1 ずつ増やす)
result[r, c] ← (dataの行番号rの要素の和) ×
(dataの列番号cの要素の和) ÷ t
endfor
endfor
return result
答えを選ぶ
出典:令和7年度 基本情報技術者試験 科目B 公開問題 問5(問題文は IPA の公開問題。図・数式・下線などはテキストに直して掲載。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:オ
覚える知識
理論度数(クロス集計の期待度数)の計算
2 つの要因が無関係だと仮定したときに期待される各セルの度数のこと。行の合計 × 列の合計 ÷ 総計で求める。
この問題で必要なこと
理論度数は (行の合計) × (列の合計) ÷ (総計) で求める。総計は 82+6+58+8 = 154。a は 1 行目の合計 88 × 1 列目の合計 140 ÷ 154 = 80。b は 2 行目の合計 66 × 2 列目の合計 14 ÷ 154 = 6。正解はオ。
ひっかけ
集計結果の値をそのまま写したもの(キ: 82・6 や イ: 58・8)。行・列の合計の取り違えや、単純に割り振った値もある。