令和4年免除試験問題 問47
問47解説へ
売上ファイルのレコードの項目の一つに処理区分があり,この処理区分に応じた処理をしたい。全売上データに対する各処理区分の出現比率はあらかじめ分かっている。処理区分を判定するための比較回数に関する記述のうち,適切なものはどれか。
- 出現比率が中間の処理区分のものを先に判定すると,全体の比較回数が少なくなる。
- 出現比率が最も大きい処理区分から先に判定すると,全体の比較回数が少なくなる。
- 出現比率が最も小さい処理区分から先に判定すると,全体の比較回数が少なくなる。
- どのような順番でも全体の比較回数は同じである。
正解 イ問題へ
広告
解説
処理を2つに分岐させるだけなら常に1回の判定で済みますが、3つ以上の処理に分岐させる場合には、条件判定の記述順によって全体の比較回数が変わることになります。考え方としては、出現比率の多い処理区分ほど少ない判定回数で済む順序になっている必要があります。
設問の条件を単純化して、出現比率が最も大きい処理区分(以下、大)が60%、出現比率が中間の処理区分(以下、中)が30%、出現比率が最も小さい処理区分(以下、小)が10%と仮定すると、各選択肢の平均比較回数は以下のようになります。
設問の条件を単純化して、出現比率が最も大きい処理区分(以下、大)が60%、出現比率が中間の処理区分(以下、中)が30%、出現比率が最も小さい処理区分(以下、小)が10%と仮定すると、各選択肢の平均比較回数は以下のようになります。
- 中は1回で判定され、大と小の処理区分は2回で判定されます。よって、平均比較回数は「1回×0.3+2回×0.7=1.7回」となります。
- 正しい。大は1回で判定され、中と小の処理区分は2回で判定されます。よって、平均比較回数は「1回×0.6+2回×0.4=1.4回」となります。プログラムの分岐処理でも同様ですが、出現比率が高いものを先に判定するほど比較回数は少なくて済みます。
- 小は1回で判定され、大と中の処理区分は2回で判定されます。よって、平均比較回数は「1回×0.1+2回×0.9=1.9回」となります。
- 判定する順序により全体の比較回数は異なります。
広告