学习笔记:证明裴蜀定理

· · 算法·理论

什么是裴蜀定理?

如果有 d = \gcd(a,b),则一定有 d \mid (ax + by),且 ax + by = k \times \gcd(a,b)

对于任意 (a,b),有最小的 (x,y) 使得 ax + by = \gcd(a,b)

证明

集合

S = \{ ax + by | x,y \in \mathbb{Z},ax + by > 0 \}

d = ax_0 + by_0 为集合中最小正值。

我们需要证明 d = \gcd(a,b)

首先要证明 d \mid ad \mid b

对于整数除法 a \div b,使得存在商 q,余数 r (0 \le r < d),有:

a = qd + r

d = ax_0 + by_0 代入,得:

r = a - q(ax_0 + by_0) = a(1 - qx_0) + b(-qy_0)

注意到 r 竟然也是 ax + by 的形式。

由于 0 \le r < dd 为集合最小正值且 d > 0,那么 r 只能为 0

那么 a = qd,即 d \mid a

同理可证,d \mid b

我们已经证明 da,b 公约数,接下来需要证明 da,b 的最大公约数。

c = \gcd(a,b),则有 c \mid ac \mid b

又因为 a = c \times m,b = c \times n,那么:

c \mid (ax + by)

xx_0 值,yy_0 值时:

c \mid (ax + by) \Rightarrow c \mid d

由于 c = \gcd(a.b)d \mid a,d \mid b,那么 c \ge d

又因为 c \mid d,那么 c \le d

由此得出 c = d,即:

d = \gcd(a,b)

证毕。