ITパスポート 2015年 秋期 問48
問題文
表に示す構成のデータを、流れ図の手順で処理する場合について考える。流れ図中のx, y, zをそれぞれデータ区分A, B, Cと適切に対応させれば、比較(“xか?”、 “yか?”、 “zか?”)の回数の合計は、最低何回で済むか。

選択肢
ア:170(正解)
イ:190
ウ:230
エ:250
🔒 解説は解答すると表示されます
最少比較回数【ITパスポート解説】
正解の理由
フローチャート(処理や判断の流れを図で示したもの)では、最初に当てはめる判断(x)が一致すれば比較は1回で済みます。よって、出現回数(件数)が多いデータ区分を先に置くほど、全体の比較回数は小さくなります。A=10件、B=30件、C=50件、その他=10件のとき、最も出現が多いCを最初(x)に、次にBをyに、最後にAをzに置く並びが最適です。この場合の比較回数は
C:1回×50件 = 50
B:2回×30件 = 60
A:3回×10件 = 30
その他: z判定後の“No”で到達するので3回×10件 = 30
合計 = 50+60+30+30 = 170、したがって正解は ア です。
B:2回×30件 = 60
A:3回×10件 = 30
その他: z判定後の“No”で到達するので3回×10件 = 30
合計 = 50+60+30+30 = 170、したがって正解は ア です。
解法ステップ
- フローチャートの判断順を確認する。ここでは順に「xか? → yか? → zか?」で、見つかればその時点で処理を行う(比較回数はその位置の回数)。「その他」は最後の“No”で到達するため比較は3回。
- 各区分の件数を整理する:A=10、B=30、C=50、その他=10(その他は固定で3回)。
- 重み付きの比較回数を最小にするため、比較回数の小さい位置(1回目→2回目→3回目)に出現頻度の大きい区分を置く。つまり件数の多い順に並べる(降順)。
- 並べ方を決めて合計を計算する:最適は C(1回), B(2回), A(3回)。合計170と求まる。
数学的に書くと、総比較回数は
で、位置は1,2,3のどれか。件数の大きいものを小さい位置に割り当てるのが最小化のコツです。
選択肢別の誤答解説
各選択肢がどの並びに対応するか、具体例で示します(計算を明示)。
-
ア相当(170) — 最適
並び: x=C, y=B, z=A
計算: C:1×50=50, B:2×30=60, A:3×10=30, その他:3×10=30 → 合計170
これが最小になります。 -
イ(190)
例1 並び: x=C, y=A, z=B
計算: C:1×50=50, A:2×10=20, B:3×30=90, その他:30 → 合計190
例2 並び: x=B, y=C, z=A
計算: B:1×30=30, C:2×50=100, A:3×10=30, その他:30 → 合計190
どちらも頻度順に並んでいないため、アより大きくなります。 -
ウ(230)
例1 並び: x=B, y=A, z=C
計算: B:1×30=30, A:2×10=20, C:3×50=150, その他:30 → 合計230
例2 並び: x=A, y=C, z=B
計算: A:1×10=10, C:2×50=100, B:3×30=90, その他:30 → 合計230
いずれも最頻値(C)を後ろに置いているため不利です。 -
エ(250)
並び: x=A, y=B, z=C
計算: A:1×10=10, B:2×30=60, C:3×50=150, その他:30 → 合計250
最も出現が多いCを最後にすると最大値になります。
※上の計算は「比較回数×件数」を合計し、最後にその他の固定30(3回×10件)を足しています。
よくある誤解
- 「その他」は4回目の比較が必要だと思う誤り
実際は zの判断で“No”になった直後にその他の処理へ行くため、比較は3回で済みます。4回と誤認すると合計が過大になります。 - 頻度が多いものを後ろに置く誤り
出現頻度の高いものほど前に置く(比較回数を小さくする)ことで全体が小さくなります。 - 単純に件数の大きさだけ見るが、計算を確認しない
並べ替えの効果を確かめるために必ず「比較回数×件数」の和を出して確認しましょう。
補足コラム
この問題は「決定木(decision tree:選択や判断を木構造で表したもの)」のコスト最小化に関する基本問題です。直列に並ぶ単純な判定(x→y→z)では、各ラベルの位置を重み(件数)順に並べるのが最適解です。これは情報理論やアルゴリズムで出てくる「貪欲法(グリーディ)」の一例で、最頻要素を先に処理する直感が数学的にも正しいことを示します。
FAQ
Q. 「その他」は本当に3回で到達するのですか?
A. はい。流れ図では zの判断で“No”になったら直接「その他の処理」へ行きます。つまり x判定(1回)、y判定(2回)、z判定(3回)まで行って「No」ならその他です。
A. はい。流れ図では zの判断で“No”になったら直接「その他の処理」へ行きます。つまり x判定(1回)、y判定(2回)、z判定(3回)まで行って「No」ならその他です。
Q. もしA,B,Cの件数が同じならどうする?
A. どの順に置いても同じ合計になります。等しい重みの場合は任意です。
A. どの順に置いても同じ合計になります。等しい重みの場合は任意です。
Q. 判定の順序を変えられない場合は?
A. 順序固定なら与えられた順に従うしかありません。最小化が可能なのはこの問題のようにx,y,zをどの区分に割り当てるかを選べる場合です。
A. 順序固定なら与えられた順に従うしかありません。最小化が可能なのはこの問題のようにx,y,zをどの区分に割り当てるかを選べる場合です。
関連キーワード: 流れ図、分岐、重み付き比較、決定木、貪欲法、最適順序、判定コスト、重み付け合計

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

