扩展欧几里得通解与最小正整数解
首先,我们有式子:
ax+by = gcd(a,b),
为了方便,我们把gcd(a,b)缩写成 d ,即:
ax+by = d,①
假设我们已经求出一组解x₀和y₀ ,那么有 :
ax₀ + by₀ = d,②
联立①和②,把 d 消掉,就有:
a(x-x₀) = -b(y-y₀),
设a'=$\frac{a}{d}$ ,b'=$\frac{b}{d}$,于是:
a'(x-x₀) = -b'(y-y₀),
观察式子,我们可以发现: gcd(a',b') = 1,那么 (x-x0) 必然是 b'的倍数,
即,b' | (x-x0),设 ,代入得:
a'b'k=-b'(y-y₀),
消掉b',同时把a'展开,即a'=$\frac{a}{d}$,变成:
$\frac{a}{d}$k = -(y-y₀),
最后移项化简,得到关于y的通解:
y=y₀-$\frac{a}{d}$k,k$\in \mathbb{Z}$
同理我们也可以得到x的通解:
x=x₀+$\frac{b}{d}$k,k$\in \mathbb{Z}$
最终,我们把x和y的通解写成:
x = x₀ + $\frac{b}{d}$k
y = y₀ - $\frac{a}{d}$k
此外,求最小x的最小正整数解 也就是求 x = x₀+$\frac{b}{d}$k >= 1,④
移项可得 : k >= $\frac{(1-x₀)*d}{b}$,
当 k = $\left \lceil\frac{(1-x₀)*d}{b}\right \rceil$时,带入④式,x取得最小正整数解
同时,x的最小非负解也有 x = x₀ % $\frac{b}{d}$,
为了消除负数取模结果带来的影响一般写成:
x = (x₀ % $\frac{b}{d}$ + $\frac{b}{d}$) % $\frac{b}{d}$

浙公网安备 33010602011771号