システムアーキテクト試験 2010年 午前211


次の流れ図において、 ①+②+③+⑤→②→③→④→②→⑥ の順に実行させるために、①においてmとnに与えるべき初期値aとbの関係はどれか。ここで、a,bはともに正の整数とする。
問題画像
a = 2
2a = b
2a = 3b
3а = 2b(正解)

解説

①においてmとnに与えるべき初期値aとbの関係はどれか【午前2 解説】

要点まとめ

  • 結論:初期値aとbは「3a = 2b」の関係でなければ、指定の実行順序は成立しません。
  • 根拠:流れ図はユークリッドの互除法を用いてmとnの最大公約数を求める処理であり、特定の初期値比率で指定の順序を実現します。
  • 差がつくポイント:単なる大小比較ではなく、繰り返しのループ回数や分岐の順序を正確に理解し、初期値の比率を導くことが重要です。

正解の理由

この流れ図はユークリッドの互除法を表しており、mとnに初期値a,bを代入後、mとnが等しくなるまで大きい方から小さい方を引き続けます。
問題文の実行順序「①+②+③+⑤→②→③→④→②→⑥」を満たすためには、初期値a,bの比率が「3a = 2b」である必要があります。
この比率であれば、最初の比較でm < nとなり⑤の処理(n - m → n)が実行され、その後のループでm > nとなり④の処理(m - n → m)へ進み、最終的にm = nとなって⑥へ進みます。
他の選択肢ではこの特定の実行順序を再現できません。

よくある誤解

  • 「mとnの大小だけを見て初期値を決めればよい」と考えがちですが、繰り返しのループ回数や分岐の順序を考慮しないと誤答します。
  • 「単純にaとbが等しいかどうか」だけで判断すると、問題の指定する実行順序は成立しません。

解法ステップ

  1. 流れ図の処理内容を理解し、ユークリッドの互除法であることを確認する。
  2. 指定された実行順序を流れ図のステップに当てはめて、どの条件分岐がどのように動くかを追う。
  3. 初期値a,bをm,nに代入した後の大小関係を仮定し、⑤(n - m → n)や④(m - n → m)がどの順で実行されるかを検証する。
  4. 実行順序を満たすためのa,bの比率を数式で表し、選択肢と照合する。
  5. 「3a = 2b」が条件を満たすことを確認し、正解とする。

選択肢別の誤答解説

  • ア: a = 2
    → aの値だけ指定してもbとの比率が不明で、指定の実行順序を保証できません。
  • イ: 2a = b
    → この比率では最初の比較でm > nとなり、⑤の処理が先に実行される順序と合いません。
  • ウ: 2a = 3b
    → イの逆比率であり、同様に指定の実行順序を満たしません。
  • エ: 3a = 2b
    → 指定の実行順序を正確に再現できる唯一の比率であり、正解です。

補足コラム

ユークリッドの互除法は最大公約数を求める古典的なアルゴリズムで、繰り返し大きい数から小さい数を引くか剰余を取る処理を行います。
この問題は単なる最大公約数の計算ではなく、処理の流れを正確に追い、初期値の関係を導く応用問題です。
流れ図の理解と条件分岐の追跡が重要で、プログラムの動作をイメージしながら解く力が求められます。

FAQ

Q: なぜ「3a = 2b」の比率が重要なのですか?
A: 指定された実行順序を実現するために、mとnの大小関係が特定のパターンで変化する必要があり、そのための初期値の比率が「3a = 2b」だからです。
Q: この流れ図は何のアルゴリズムを表していますか?
A: ユークリッドの互除法で、最大公約数を求めるために大きい方から小さい方を引く処理を繰り返しています。
Q: なぜ他の選択肢では実行順序が成立しないのですか?
A: 他の比率ではmとnの大小関係が異なり、指定された分岐やループの順序を再現できないためです。

関連キーワード: ユークリッドの互除法, 流れ図, 条件分岐, 最大公約数, アルゴリズム理解, 制御フロー
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ