アルゴリズムとプログラミング

基本情報技術者試験配列/集計」の問題

アルゴリズムとプログラミングアルゴリズムとプログラミング計算問題難易度:normal
次の手続 binCount は、得点配列 arr の各値を 10 点刻みの階級(0〜9 点, 10〜19 点, …, 90〜99 点)に分け、各階級の度数を配列 hist に集計する。「÷ の商」は整数除算を表す。arr = {72, 65, 78, 91, 70, 55, 79, 83, 71}(要素数 9、添字は 1 から)を与えたとき、70 点台(70〜79 点)の度数 hist[7] の値はどれか。
○手続: binCount(整数型の配列: arr, 整数型の配列: hist)
  整数型: i, b
  for (i を 1 から arrの要素数 まで 1 ずつ増やす)
    b ← (arr[i] ÷ 10) の商
    hist[b] ← hist[b] + 1
  endfor
3個
度数5個
全体で9個
7個
正解
度数5個

(arr[i]÷10) の商が階級番号になる。商が 7 になる 70〜79 点は 72,78,70,79,71 の 5 件であり hist[7]=5 となるため イが正しい。

?選択肢ごとの解説

ア ×70 点台を一部しか数えず 3 個とした、整数除算で 70 や 79 の境界を別階級に入れた誤りである。
イ ○(arr[i]÷10) の商が階級番号になる。商が 7 になる 70〜79 点は 72,78,70,79,71 の 5 件であり hist[7]=5 となるため イが正しい。
ウ ×全要素数 9 をそのまま答えた、特定階級に限定せず総数を数えた誤りである。
エ ×階級番号 7 を度数と取り違えて 7 個とした、添字と集計値を混同した誤りである。

くわしく

ヒストグラムは値÷階級幅の商を階級番号として度数を加算する。70 も 79 も商が 7 となり同一階級に入る点(境界の包含)が要点である。

本番での押さえどころ

試験のコツ

各得点について『÷10 の商』を先に全部書き出し、商=7 の件数だけ数える。

覚え方

『階級番号=値の十の位(÷10 の商)』と覚える。

よくある誤り

70 や 79 を隣の階級に入れる、または階級番号と度数を取り違えるミスが多い。

アルゴリズムとプログラミングの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-b-algo-0058

【基本情報技術者試験】配列/集計の問題 — 解答・解説|ukamiru 過去問