メインコンテンツへスキップ
教材一覧に戻る
数学A

ユークリッドの互除法じょほう最大公約数さいだいこうやくすう

最終確認日:

このしょうまなぶこと

前章ぜんしょうまなんだ gcd\gcd を、 素因数分解そいんすうぶんかいしなくてももとめる方ほうユークリッドの互除法ゆーくりっどのごじょほうです。 この強力きょうりょく道具どうぐは、 古代こだいギリシャのユークリッド 「げんろん」 (やく 2300 ねんぜん) にすでさいされています。

  • 整数の割り算定理せいすうのわりざんていりかくにんする
  • ユークリッドの互除法ゆーくりっどのごじょほうgcd\gcdもとめる
  • ざんあまり」 で次々つぎつぎつづける仕みをかいする
  • 拡張ユークリッド互除法かくちょうゆーくりっどごじょほうax+by=gcd(a,b)ax + by = \gcd(a, b)せいすうかいもとめる

ポイント:除法じょほうは 「aabbったあまりを使つか」 だけのシンプルな操作そうさ計算けいさんりょうがとてもすくないので、 おおきなかずにもきます。

1. 整数せいすうざん定理ていり

定理ていり

せいすう aaせいせいすう bbたいし、

a=bq+r(0r<b)a = bq + r \quad (0 \le r < b)

たすせいすう q,rq, rただいちとお 存在そんざいします。 qqしょうrrあまびます。

れい: 23=54+323 = 5 \cdot 4 + 3 (しょう 4、 あまり 3)、 100=714+2100 = 7 \cdot 14 + 2 (しょう 14、 あまり 2)。

重要じゅうよう性質せいしつ

gcd(a,b)=gcd(b,r)(a=bq+r)\gcd(a, b) = \gcd(b, r) \quad (a = bq + r)

つまり 「aabbgcd\gcd」 = 「bbあまりの gcd\gcd」。 これが互除法じょほうしんぞう部です。

性質せいしつ証明しょうめい

a=bq+ra = bq + r より r=abqr = a - bqdda,ba, bきょうつうやくすうなら d(abq)=rd \mid (a - bq) = r であり、 ぎゃくddb,rb, rきょうつうやくすうなら d(bq+r)=ad \mid (bq + r) = a。 したがって 「a,ba, bきょうつうやくすう」 と 「b,rb, rきょうつうやくすう」 はかんぜんいっします。

2. ユークリッドの互除法じょほう

手順てじゅん

gcd(a,b)\gcd(a, b)もとめる (a>b>0a > b > 0 とする) 手順てじゅん:

  1. aabbり、 あまr1r_1もとめる
  2. つぎbbr1r_1り、 あまr2r_2もとめる
  3. 同様どうようつづけ、 あまりが 0 になったときの直前ちょくぜんあまり (= われかた) が gcd\gcd

例題れいだい 1: gcd(252, 198)

られるわれしょうあま
252198154
19854336
5436118
361820

あまりが 0 になったときのわれほうが 18 なので、 gcd(252,198)=18\gcd(252, 198) = 18

検算けんざん: 252=22327252 = 2^2 \cdot 3^2 \cdot 7198=23211198 = 2 \cdot 3^2 \cdot 11きょうつう = 232=182 \cdot 3^2 = 18 ○。

例題れいだい 2: gcd(2730, 663)

られるわれしょうあま
2730663478
66378839
783920

gcd=39\gcd = 39

例題れいだい 3: gcd(1071, 1029)

1071=10291+421071 = 1029 \cdot 1 + 421029=4224+211029 = 42 \cdot 24 + 2142=212+042 = 21 \cdot 2 + 0gcd=21\gcd = 21

3. 互除法じょほう計算けいさんりょう

なぜはやいか

かくステップでかずがおおむね 半分はんぶん以下いか になります (フィボナッチ数ふぃぼなっちすう最悪さいあくケース)。 したがって log2a\log_2 a ステップ程度ていどわります。

a,ba, b が 10 おく程度ていどでもすうじゅうかいざんgcd\gcdもとまるので、 コンピュータの暗号あんごう計算けいさん (RSA など) でも中心ちゅうしんてき使つかわれます。

4. 拡張かくちょうユークリッド互除法じょほう

目標もくひょう

せいすう a,ba, bたいし、

ax+by=gcd(a,b)ax + by = \gcd(a, b)

たす せいすうかい (x,y)(x, y)もとめます。 (このかたちしょう不定方程式ふていほうていしき出発しゅっぱつてん)。

かい存在そんざいすること

ベズーの等式べずーのとうしき: にんせいすう a,ba, b (両方りょうほう 0 でない) にたいし、 ax+by=gcd(a,b)ax + by = \gcd(a, b)たすせいすう x,yx, yかなら存在そんざいします。

もとかた (ぎゃく代入だいにゅう)

除法じょほうおこない、 あまりのしきうえからじゅんならべ、 からじゅん代入だいにゅう していきます。

例題れいだい 4: 252x + 198y = 18 の整数せいすうかい

まず互除法じょほう (例題れいだい 1) の結果けっかならべます。

252=1981+54198=543+3654=361+1836=182+0\begin{aligned} 252 &= 198 \cdot 1 + 54 \\ 198 &= 54 \cdot 3 + 36 \\ 54 &= 36 \cdot 1 + 18 \\ 36 &= 18 \cdot 2 + 0 \end{aligned}

下から逆算ぎゃくさん:

18=54361=54(198543)=544198=(252198)4198=25241985\begin{aligned} 18 &= 54 - 36 \cdot 1 \\ &= 54 - (198 - 54 \cdot 3) = 54 \cdot 4 - 198 \\ &= (252 - 198) \cdot 4 - 198 = 252 \cdot 4 - 198 \cdot 5 \end{aligned}

したがって x=4,y=5x = 4, y = -5 が 1 つのせいすうかい検算けんざん: 25241985=1008990=18252 \cdot 4 - 198 \cdot 5 = 1008 - 990 = 18 ○。

例題れいだい 5: 17x + 12y = 1

gcd(17,12)=1\gcd(17, 12) = 1 なのでせいすうかい存在そんざい。 互除法じょほう:

17=121+517 = 12 \cdot 1 + 512=52+212 = 5 \cdot 2 + 25=22+15 = 2 \cdot 2 + 12=12+02 = 1 \cdot 2 + 0

逆算ぎゃくさん:

1=522=5(1252)2=55122=(1712)5122=175127\begin{aligned} 1 &= 5 - 2 \cdot 2 \\ &= 5 - (12 - 5 \cdot 2) \cdot 2 = 5 \cdot 5 - 12 \cdot 2 \\ &= (17 - 12) \cdot 5 - 12 \cdot 2 = 17 \cdot 5 - 12 \cdot 7 \end{aligned}

したがって x=5,y=7x = 5, y = -7検算けんざん: 175127=8584=117 \cdot 5 - 12 \cdot 7 = 85 - 84 = 1 ○。

5. しょうまつまとめ

どうこうしき手順てじゅん
ざん定理ていりa=bq+ra = bq + r0r<b0 \le r < b
除法じょほうかくgcd(a,b)=gcd(b,r)\gcd(a, b) = \gcd(b, r)
計算けいさんほうあまりが 0 になるまでつづける
計算けいさんりょうO(logmin(a,b))O(\log \min(a, b))
拡張かくちょうばんax+by=gcd(a,b)ax + by = \gcd(a, b)せいすうかい逆算ぎゃくさんもとめる

しょうでは: いち不定ふてい方程式ほうていしきax+by=cax + by = cせいすうかいを互除法じょほうもちいてもとめ、 一次合同式いちじごうどうしきまなびます。

この教材きょうざいやくちましたか?