前言
说实话我的数论一直学得不是很好,证明和很多符号都加大了我在学习过程中的困难程度。所以在写这一篇总结的时候我也觉得自己会出现这样或那样的小错误。所以当正在看这篇文章的你,如何发现了任何错误,都欢迎私信或评论指出。
gcd
要知道扩展欧几里得是什么,首先要知道欧几里得是什么。欧几里得算法又称辗转相除法,它是指两个正整数a,b的最大公约数。
他的计算公式为gcd(a,b)=gcd(b,a mod b);
也就是说,我们可以假设
a=∏ipiei a = ∏ i p i e i
其中pi表示a的质因子,ei表示此质因子的最大次方。
b也同理。
就比如 12=22⋅31 12 = 2 2 · 3 1 、 24=23⋅31 24 = 2 3 · 3 1 。
也可以这么表示:
gcd(a,b)=∏i∈Sa∩Sbpimin(Ea[i],Eb[i]) g c d ( a , b ) = ∏ i ∈ S a ∩ S b p i m i n ( E a [ i ] , E b [ i ] )
最大公约数d为 max(d|a,d|b) m a x ( d | a , d | b )
如何证明这个 计算公式是 正确的?
我们假设 a=kb+r a = k b + r ,则有 r=a−kb=amodb r = a − k b = a m o d b 。其中 k=⌊ab⌋ k = ⌊ a b ⌋
再假设 d d 为