次の記述中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 予防接種の病気Xに対する予防効果を調査するために集めたデータの集計結果を基に、病気Xにかかるかどうかが、予防接種の有無に影響されないと仮定した場合の人数を計算する。この人数を理論度数という。表1に集計結果の例を示し、表2に表1を基に計算した理論度数を示す。 関数fは、引数dataで受け取った集計結果を基に計算した理論度数を返す。引数と戻り値は二次元配列で、その行が表の行、その列が表の列に対応する。

理論度数は行合計×列合計÷総合計で求める

基本情報技術者試験2025年度 公開問題 科目B5/基礎理論 / 統計

表1 集計結果の例(単位 人)
病気Xにかからなかった病気Xにかかった
予防接種を受けた826
予防接種を受けていない588
表2 表1を基に計算した理論度数(単位 人)
病気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

選択肢

正解と解説

正解: a: 80 / b: 6

理論度数は、その行の合計とその列の合計を掛けて全体の合計で割った値である。全体は82+6+58+8=154人、aの行合計は88、列合計は140なので、88×140÷154=80となる。bの行合計は66、列合計は14なので、66×14÷154=6となる。

選択肢ごとの解説

出典:令和7年度 公開問題 基本情報技術者試験 科目B 問5(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。