アルゴリズムとプログラミング|平成27年度 秋期 ITパスポート試験(特別措置試験) 問48
表に示す構成のデータを,流れ図の手順で処理する場合について考える。流れ図中のx,y,zをそれぞれデータ区分A,B,Cと適切に対応させれば,比較(“xか?”,“yか?”,“zか?”)の回数の合計は,最低何回で済むか。
| データ区分 | 件数 |
|---|---|
| A | 10 |
| B | 30 |
| C | 50 |
| その他 | 10 |
〔図〕(原典の流れ図を記述に書き起こしたものです。「開始」→ ひし形「xか?」。Yes なら「xの処理」。No なら ひし形「yか?」へ。Yes なら「yの処理」。No なら ひし形「zか?」へ。Yes なら「zの処理」、No なら「その他の処理」。4つの処理はいずれも合流し、ひし形「終わりか?」へ。No なら「次のデータ」として「xか?」の手前へ戻り、Yes なら「終了」。図の右上に「流れ図中のx,y,zはデータ区分のA,B,Cのいずれかと対応させる。」の注記があります)
- ✓ これが正解170
- 190
- 230
- 250
解説
件数の多い区分ほど先に判定すると、比べる回数が減ります。
まず一件あたり何回比べるかを、流れ図の段から数えます。最初の判定で当たる区分は一回、次で当たる区分は二回、三つ目で当たる区分は三回です。どれにも当たらない区分は三回で、これは並べ方を変えても動きません。動かせるのは三つの区分の割り当てだけなので、件数の多い区分ほど早い段に置きます。五十を一回、三十を二回、十を三回、残る十を三回で足すと百七十になります。シラバスは流れ図を、アルゴリズムを表す方法の一つとして挙げています。段の並びが決まっている図では、上の段ほど当たる件数を多くすると全体の回数が減ります。探索の話でも同じ考え方になります。四つの数はどれも、実際に在る割り当てから出てくる答です。だから見比べても決まらず、自分で数えることになります。上の段に置く区分を選ぶだけで、合計は大きく変わります。
ほかの選択肢はなぜ違うのか
- 百九十という数です。件数の順を一か所だけ入れ替えたときに出てきます。段の数と件数の表は、別々に読んでから掛け合わせます。どちらか一方だけでは決まらないので、二つを並べて置いておきます。図から段の数、表から件数を取ります。
- 二百三十という数です。件数の多い区分を後ろの段に置いてしまうと出てきます。四つの数はどれも実際に在る並べ方から出てくる答なので、見比べても決まりません。自分で数えるしかない型になります。でたらめな数は一つも置かれていません。
- 二百五十という数です。件数の少ない区分から順に判定すると出てきます。表の中のどれかを使い忘れると、選択肢に無い数が出ます。そこで戻れるので、数え落としの合図として使えます。合図の在る問いは、たいへん助かることになります。
この問題に関係する言葉
- 流れ図
- アルゴリズム問題を解くための、決まった手順や考え方そのものです。書き表したプログラムと違い、それ自体は著作権で守られません。
出典:平成27年度 秋期 ITパスポート試験(特別措置試験) 問48
同じ単元をまとめて解くならアルゴリズムとプログラミングへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)