ホーム > システムアーキテクト試験 > 2014年
システムアーキテクト試験 2014年 午前2 問10
次の流れ図において、
① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥
の順に実行させるために、①においてmとnに与えるべき初期値aとbの関係はどれか。ここで、a, bはともに正の整数とする。

ア:a=2b
イ:2a=b
ウ:2a=3b
エ:3a=2b(正解)
解説
次の流れ図において、①においてmとnに与えるべき初期値aとbの関係はどれか【午前2 解説】
要点まとめ
- 結論:初期値の関係は「3a = 2b」が正解です。
- 根拠:流れ図はユークリッドの互除法の変形で、mとnの差を繰り返し計算しながら最大公約数を求める構造です。
- 差がつくポイント:mとnの初期値の比率を正しく設定し、ループが終了条件に達するまでの動きを正確に理解することが重要です。
正解の理由
この流れ図は、mとnの大小関係に応じて差を更新し、mとnが等しくなるまで繰り返す処理を示しています。
- 菱形②でmとnが等しいか判定し、等しければ終了。
- 等しくなければ菱形③でmとnの大小を判定し、m > nならmにm-nを代入、m < nならnにn-mを代入。
この処理は最大公約数を求めるユークリッドの互除法の基本形です。
初期値a, bに対して、ループの流れが① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥となるためには、aとbの比が3:2である必要があります。
つまり、3a = 2bの関係が成り立つとき、流れ図の処理が示す順序で実行され、正しく終了します。
よくある誤解
- 「mとnの大小関係だけで初期値を決めればよい」と考えがちですが、比率が重要です。
- ユークリッドの互除法の基本的な理解がないと、差の更新処理の意味を誤解しやすいです。
解法ステップ
- 流れ図の処理内容を把握し、mとnの差を繰り返し計算することを理解する。
- 菱形②でmとnが等しいか判定し、等しくなければ菱形③で大小を判定することを確認。
- 菱形③の判定により、m > nならmにm-nを代入、m < nならnにn-mを代入することを把握。
- 初期値a, bに対して、処理の流れが① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥となる条件を検証。
- それぞれの処理でmとnの値がどのように変化するか計算し、aとbの比率を導出。
- 比率が3a = 2bであることを確認し、正解を選択。
選択肢別の誤答解説
- ア: a=2b
→ 比率が逆で、流れ図のループ順序を満たさず、終了条件に正しく到達しません。 - イ: 2a=b
→ 比率が不適切で、mとnの差の更新が流れ図の通りに進みません。 - ウ: 2a=3b
→ 比率が逆方向で、ループの流れが変わり、指定された実行順序になりません。 - エ: 3a=2b
→ 正しい比率で、流れ図の処理順序と終了条件を満たします。
補足コラム
この問題はユークリッドの互除法の基本的な考え方を理解しているかを問うものです。
ユークリッドの互除法は最大公約数を求める効率的なアルゴリズムで、差を繰り返し計算する方法はその一形態です。
流れ図の読み取りとアルゴリズムの動作理解が重要で、初期値の設定が処理の流れに大きく影響します。
ユークリッドの互除法は最大公約数を求める効率的なアルゴリズムで、差を繰り返し計算する方法はその一形態です。
流れ図の読み取りとアルゴリズムの動作理解が重要で、初期値の設定が処理の流れに大きく影響します。
FAQ
Q: なぜmとnの差を更新する処理が最大公約数を求めることになるのですか?
A: mとnの差を繰り返し計算することで、mとnの最大公約数は変わらず、最終的にm=nとなった値が最大公約数となるためです。
A: mとnの差を繰り返し計算することで、mとnの最大公約数は変わらず、最終的にm=nとなった値が最大公約数となるためです。
Q: 初期値の比率が違うとどうなりますか?
A: 処理の流れが変わり、指定された実行順序を満たさず、正しい終了条件に到達しない場合があります。
A: 処理の流れが変わり、指定された実行順序を満たさず、正しい終了条件に到達しない場合があります。
関連キーワード: ユークリッドの互除法, 流れ図, 最大公約数, アルゴリズム理解, 条件分岐