令和元年度(再試験) I-2-2

科目: 基礎科目 / 分野: 情報・論理 / 年度: 令和元年度(再試験)

I-2-2 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

ユークリッドの互除法と行列計算を用いて、gcd(108, 57)と、108x+57y=gcd(108,57)を満たす整数x、yを求める拡張ユークリッド互除法に関する空欄補充問題。

解説

この問題で問われていること

ユークリッドの互除法でgcd(108,57)を求め、互除法の各ステップを表す行列の積Aから、ax+by=gcd(a,b)を満たす整数x、yを求める空欄補充問題。

解き方

① 互除法で最後に割り切った数(余り0の直前の割る数)が最大公約数。x・y は行列の積をそのまま計算して読む
② gcd=3 で④⑤。[[0,1],[1,−1]]² = [[1,−1],[−1,2]]、これに左から[[0,1],[1,−8]]を掛けると2行目 = [1+8, −1−16] = [9, −17]。検算 108×9+57×(−17)=972−969=3
③ 3・9・−17(④)

正解が正しい理由

互除法の各式より、108=57×1+51、57=51×1+6、51=6×8+3、6=3×2+0であり、余りが0になる直前の値が最大公約数なのでgcd(108,57)=3(ア)。次にA=[[0,1],[1,−8]]·[[0,1],[1,−1]]·[[0,1],[1,−1]]を計算する。後ろの2つの積は[[0,1],[1,−1]]·[[0,1],[1,−1]]=[[1,−1],[−1,2]]。これに左から[[0,1],[1,−8]]を掛けると、1行目は[−1,2]、2行目は[1×1+(−8)(−1), 1×(−1)+(−8)×2]=[9,−17]となる。よってx=9(イ)、y=−17(ウ)。実際、108×9+57×(−17)=972−969=3=gcd(108,57)を満たす。したがってア=3、イ=9、ウ=−17の④が正しい。

各選択肢について

覚えるべきポイント

拡張ユークリッド互除法では、互除法の各ステップを2×2行列で表し、その積を求めることでax+by=gcd(a,b)を満たすx、yが得られる。行列の積はゆっくり確実に計算し、最後に元の式へ代入して検算するとよい。

キーワード: ユークリッドの互除法、最大公約数、拡張ユークリッド互除法、行列、情報・論理

出題履歴

類題(同じ論点の別問題)