前言
前天讲了一堆的数论,还没什么时间整理,拓欧我也只是第一次接触(果然还是太蒟),搞了半个晚上才弄懂。避免遗忘或弄丢,写篇博文。
拓展欧几里得算法
了解一下:扩展欧几里得算法,简称 exgcd,一般用来求解不定方程,求解线性同余方程,求解模的逆元等
引理:存在 x , y 使得 gcd(a,b)=ax+by,求 x,y
证明:
part 1:
(1)由gcd(a,b)= gcd(b,a mod b) //辗转相除法
得ax+by = by+(a mod b)*y
(2)bx+(a mod b)*y = bx+(a - (a div b)*b)*y //(a - (a div b)*b)相当于a mod b,总数-最大倍数=余数
= bx+ay-(a div b)*b*y //乘法分配律