扩展欧几里得求数字逆元
欧几里得算法大家应该都听说过,是一个求最大公约数的算法,又叫辗转相除法。大致算法的思路就是,要求a,b两个数的最大公约数,用其中一个数对另一个数取余数,不妨记为b%a,然后让下一轮,b变为a,a再变为上一轮b%a的余数继续重复这样的操作。
这里简单给出一个证明。设最大公约数为t,则 a = s t , b = l t a=st, b=lt a=st,b=lt,则 b % a = k t , k ≤ l 且 k < s b\%a=kt,\ k≤l且k<s b%a=kt, k≤l且k<s,所以这是一个缩小的序列,最终k缩小到0,就得到了最大公约数。
那么什么是扩展欧几里得算法呢,这里得先介绍一个定理,叫裴蜀定理,对于a,b肯定存在 a s