基本情報技術者試験の科目Bのサンプル問題を題材に,四分位数・中央値・最小値・最大値を求める処理について学習します。この問題では,整列済みの配列から,最小値,第1四分位数,中央値,第3四分位数,最大値を求める処理を確認します。
(令和4年度12月公開) 基本情報技術者試験 サンプル問題 科目B 問14
問 次の記述中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。
要素数が1以上で,昇順に整列済みの配列を基に,配列を特徴づける五つの値を返すプログラムである。
関数 summarize を summarize({0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}) として呼び出すと,戻り値は である。
〔プログラム〕
○実数型: findRank(実数型の配列: sortedData,実数型: p)
整数型: i
i ← (p × (sortedDataの要素数 - 1)) の小数点以下を切り上げた値
return sortedData[i + 1]
○実数型の配列: summarize(実数型の配列: sortedData)
実数型の配列: rankData ← {} /* 要素数0の配列 */
実数型の配列: p ← {0,0.25,0.5,0.75,1}
整数型: i
for (i を 1 から pの要素数 まで 1 ずつ増やす)
rankDataの末尾 に findRank(sortedData,p[i])の戻り値 を追加する
endfor
return rankData
解答群
ア {0.1,0.3,0.5,0.7,1}
イ {0.1,0.3,0.5,0.8,1}
ウ {0.1,0.3,0.6,0.7,1}
エ {0.1,0.3,0.6,0.8,1}
オ {0.1,0.4,0.5,0.7,1}
カ {0.1,0.4,0.5,0.8,1}
キ {0.1,0.4,0.6,0.7,1}
ク {0.1,0.4,0.6,0.8,1}
【解答】ク
【解説】
summarize は,整列済みの配列から,最小値,第1四分位数,中央値,第3四分位数,最大値を取り出して,配列として返す処理である。p には {0,0.25,0.5,0.75,1} が設定されており,それぞれ最小値,第1四分位数,中央値,第3四分位数,最大値に対応する。findRank では,p × (要素数-1) の小数点以下を切り上げた値に1を加えて,取り出す要素の番号を求める。今回の配列の要素数は10なので,p の値に対応する要素番号は,それぞれ1,4,6,8,10となる。したがって,sortedData から取り出される値は {0.1,0.4,0.6,0.8,1} となる。
この問題のポイント
この問題から学べることは,
- 四分位数・中央値・最小値・最大値とは何か
- 整列済みの配列から指定された位置の値を取り出す方法
- 要素数から取り出す要素番号を計算する方法
- 関数の戻り値を配列に順番に格納する処理
です。特に,p の値から取り出す要素番号を計算し,整列済みの配列から最小値,第1四分位数,中央値,第3四分位数,最大値を取り出す処理を理解しておきましょう。
基本情報技術者試験の学習におすすめの参考書
基本情報技術者試験の合格を目指す方におすすめの参考書です。
学習のお役に立ちましたら
この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。
よろしければ、このサイトを応援いただけますと嬉しいです。
※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。


