戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2020年 秋期 午前247


問題文

次の流れ図において、  ① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥ の順に実行させるために、①においてmとnに与えるべき初期値aとbの関係はどれか。ここで、a,bはともに正の整数とする。
応用情報技術者 2020年 秋期 午前2 問47の問題画像

選択肢

a = 2b
2a = b
2a = 3b
3a = 2b(正解)

🔒 解説は解答すると表示されます

逐次減算の遷移【午前2解説】

正解の理由

フローチャートは「大きい方から小さい方を引く」操作を繰り返し、等しくなった時点で終了します。設問で要求される実行順(①→②→③→⑤→②→③→④→②→⑥)を満たすためには、初期値 a,b が次の関係を満たす必要があります。選択肢の中では がその条件に対応します。以下で、各分岐での m,n の具体的な変化と不等式の追跡を順に示して、なぜ が必要かを明確にします。

解法ステップ

初期状態(①)
  • m = a, n = b (a,b は正の整数)
  1. 最初の判断(②)で右へ進み③に入るには m ≠ n かつ m < n が必要
    • よって条件1: (かつ 、しかし正整数なので で十分)
  2. ③で m < n の場合(右へ)⑤を実行:n ← n − m
    • ⑤の後の値を記すと、m = a, n = b − a(ここを n1 と置く)
    • 以降の判断で再び③に入るためには、②で m ≠ n1 が必要(つまり
  3. 次に③で下へ(④)に入るには m > n1 が必要
    • よって条件2: (すなわち
  4. ④を実行すると m ← m − n1
    • ④の後の値は m = a − (b − a) = (これを m1 とする)、n は n1 =
  5. 最後に②で等号の下辺(下へ)に行って⑥へ至るには m1 = n1 が必要
    • よって条件3:
  6. 条件3を整理すると
まとめ(整合性確認)
  • を満たすとき、a,b は正整数なので存在するパラメータ表示 )が得られます。
  • この一般形は条件1()、条件2()および各中間値が正であることを自動的に満たします。したがって、実行順を満たす初期関係は (選択肢 )です。
(検算の具体例)
  • 最小の を取ると、 ① m=2,n=3 → ②: 2<3 → ③: < → ⑤: n=1 → ②: 2≠1, 2>1 → ③: > → ④: m=1 → ②: 1=1 → ⑥(終了)。順序が一致します。

選択肢別の誤答解説

  • ア:
    これだと となり、最初の比較で m>n(④へ)になってしまい、所望の右側ルート(⑤を先に実行する)に入らないため不適。
  • イ: (すなわち
    これは初期で (良い)が、⑤を実行すると となり、次の②で既に m=n になってしまうため(すぐに⑥へ)、要求されるループ(③→⑤→…→④)を経ない。
  • ウ: (すなわち
    これだと になり、最初の比較が下辺(④)へ進むため、最初に③→⑤の経路をとらない。したがって順序が合致しない。
  • エ:
    上記の解法ステップで示した通り、各比較の不等号の向きと変数更新が矛盾なくつながり、求める実行順を満たす。

よくある誤解

  • 初期の比較で「等しくない=右へ進む」が要件なだけだと誤解して、どちらの不等号(<か>)になるかを追わない。実行順を得るには不等式の向き(<か>か)まで確定する必要があります。
  • 変数更新を忘れる/取り違える(例えば⑤で m を変えると誤認する)。⑤は n を更新し、④は m を更新します。どちらが変わるかを正確に追うことが重要です。
  • 整数性や正の条件を確認しない。導出された関係が整数解を持つか(例:)を確認しないと、実際の初期値候補が存在するか不明瞭になります。

補足コラム

このフローチャートは「引き算バージョンのユークリッドの互除法(減算法)」に相当します。繰り返し「大きい方から小さい方を引く」操作を行い、値が一致したら終了するアルゴリズムです。設問は「特定の比較・更新の順序」を要求しているため、単に最終的な最大公約数ではなく、中間での不等式の符号変化と差の追跡が鍵になります。導出された一般解 )はこの順序を保証する最小単位(公約数をくくった形)です。

FAQ

Q. a,b はどのような値の組が解になるか?
A. 任意の正整数 に対して が解になります。最小例は
Q. 等号に達する前に別の等号(例:②で早期に等しくなる)になってしまうことは?
A. それを避けるために中間不等式()を満たす必要があり、 はこれらを満たす最小の比率条件です。
Q. 同様の方法で別の実行順を設計できるか?
A. 可能です。各分岐での不等号の向きを設定し、対応する連立不等式と差分更新を追えば、初期比率の条件を同じ手順で導けます。

関連キーワード: ユークリッド互除法、逐次減算、フローチャート、変数更新、不等式追跡
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について