ITパスポート 2009年 春期 問72
問題文
図1のように二つの正の数値A1、 A2を読み取り、二つの数値B1、 B2を出力するボックスがある。B1にはA2と同じ数値を出力し、B2にはA1をA2で割った余りを出力する。図2のようにこのボックスを2個つないだ場合、A1=15、A2=6のとき後方のボックスのB1に出力される数値は幾らか。

選択肢
ア:0
イ:3(正解)
ウ:6
エ:15
🔒 解説は解答すると表示されます
二つのボックスの出力(図1・図2)【ITパスポート 解説】
正解の理由
図1のボックスは、上の出力 B1 に「下の入力 A2 と同じ値」を出し、下の出力 B2 に「上の入力 A1 を下の入力 A2 で割ったときの余り(剰余、英: remainder)」を出します。図2ではこのボックスを2つ直列につないでいます。最初に A1=15、A2=6 を左のボックスに入れると、左ボックスの上出力は 6、下出力は の余りである 3 になります。これらがそのまま右のボックスの入力になるため、右ボックスの上出力 B1 は右ボックスの下入力(つまり左ボックスの下出力)と同じ 3 になります。したがって答えは選択肢の中で イ(3)です。
解法ステップ
- 左のボックスに入力:上 A1 = 15、下 A2 = 6。
- 左ボックスの出力を計算:
- B1(上出力) = A2 = 6
- B2(下出力) = 15 を 6 で割った余り = 3( 余り )
- 左ボックスの出力がそのまま右ボックスの入力になる:右ボックスの上入力 A1' = 6、下入力 A2' = 3。
- 右ボックスの上出力 B1 = A2' = 3。これが求める値。
選択肢別の誤答解説
- ア: 0
誤り。0になるのは「余りが0」の場合(つまり割り切れるとき)ですが、15 を 6 で割ると余りは 3 です。よって 0 ではありません。 - イ: 3
正解。上で示した通り、右ボックスの B1 は右ボックスの下入力(左ボックスの下出力)で、左ボックスの下出力は 3 です。 - ウ: 6
誤り。6 は左ボックスの上出力(左の B1)ですが、それが右ボックスの上入力(A1')になります。右ボックスの上出力は「右の A2'」なので 6 ではなく 3 になります。 - エ: 15
誤り。15 は最初の上入力 A1 ですが、右ボックスの B1 に直接出る値ではありません。値は各ボックスの決まりどおり変換されます。
よくある誤解
- 「出力の上(B1)は常に最初の A1 がそのまま出る」と考えるミス。実際は B1 に出るのはそのボックスの下入力 A2 です。図が連結されると値が交換されます。
- 「余り(剰余)を商と混同する」ミス。商は割り算の整数部分(例: )で、余りはその後に残る数(この例では 3)です。問題は余りを使います。
- 「出力が交差して上出力が下入力につながる」と誤解する場合。図の説明では上→上、下→下で直結されています。図をよく追ってください。
補足コラム
このボックスの処理((A1, A2) → (A2, A1 mod A2))を繰り返すと、ユークリッドの互除法(Euclidean algorithm:最大公約数を求める方法)になります。例えば (15,6) を一度通すと (6,3)、さらに通すと (3,0) になり、0 が現れた時のもう一方の値 3 が最大公約数(GCD)です。日常ではあまり意識しませんが、こうした単純な置換と剰余の組合せが重要なアルゴリズムの構成要素になっています。
また余りの性質について簡単に:
- のとき (例:)。
- が で割り切れるとき 。
FAQ
Q1: A2 が A1 より大きかったらどうなる?
A: その場合は A1 を A2 で割った余りは A1( のとき余り = A1)です。例えば A1=4、A2=6 なら B2=4、B1=6。
A: その場合は A1 を A2 で割った余りは A1( のとき余り = A1)です。例えば A1=4、A2=6 なら B2=4、B1=6。
Q2: A2 が 0 だとどうなる?
A: 問題文は「正の数」としているので A2=0 は想定外です。数学的に 0 で割ることは定義されないため実際の装置やプログラムではエラーになります。
A: 問題文は「正の数」としているので A2=0 は想定外です。数学的に 0 で割ることは定義されないため実際の装置やプログラムではエラーになります。
Q3: なぜ最終的に 3 が出る?
A: 左ボックスで余り 3 が下出力になり、その下出力が右ボックスの上出力の元になるわけではなく、右ボックスの下入力として渡され、右ボックスの上出力がその下入力と同値になるためです。順を追えば一意に 3 になります。
A: 左ボックスで余り 3 が下出力になり、その下出力が右ボックスの上出力の元になるわけではなく、右ボックスの下入力として渡され、右ボックスの上出力がその下入力と同値になるためです。順を追えば一意に 3 になります。
関連キーワード: 剰余、余り、除算、ユークリッドの互除法、アルゴリズム、フローチャート、入力・出力、数値処理

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

