1、什么是逆元 当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法: 设c是b的逆元,则有b*c≡1(mod m); 则(a/b)%m = (a/b)*1%m = (a/b)*b*c%m = a*c(mod m); 即a/b的模等于a*b的逆元的模; 2、求逆元的 ...
分类:
其他好文 时间:
2018-03-15 23:00:27
阅读次数:
260
https://zh.wikipedia.org/wiki/%E8%BC%BE%E8%BD%89%E7%9B%B8%E9%99%A4%E6%B3%95 取模也是一样的,就当多减几次. 在欧几里得最初的描述中,商和余数是通过连续的减法来计算的,即从rk?2中不断减去rk?1直到小于rk?1。一个更高效 ...
分类:
编程语言 时间:
2018-03-08 19:38:24
阅读次数:
261
扩展欧几里得算法 求逆元就不说了。 ax+by=c 这个怎么求,很好推。 设d=gcd(a,b) 满足d|c方程有解,否则无解。 扩展欧几里得求出来的解是 x是 ax+by=gcd(a,b)的解。 对于c的话只需要x*c/gcd(a,b)%(b/d)即可,因为b/d的剩余系更小。 为什么这样呢? 设 ...
分类:
其他好文 时间:
2018-03-08 00:13:23
阅读次数:
202
思路:枚举 a ,通过扩展欧几里得算法利用数列前两个值求 b ,排除非整数解的情况,判断该组 a,b 是否满足剩余序列,(注意必须判断整个序列,不能只判断前几个值,时间够用)。注意对于求出的 b 要模10001。(观察通解和b范围的关系) ...
分类:
其他好文 时间:
2018-03-05 22:22:26
阅读次数:
157
给你$a,b$,求$x,y$使得$xa+yb=gcd(a,b)$ 假设已经求出了$x,y$满足$xb+y(a\mod b)=gcd(a,b)$ $$ \begin{align} xb+y(a\mod b)&=gcd(a,b)\\ xb+y(a \lfloor\frac{a}{b}\rfloor b) ...
分类:
编程语言 时间:
2018-03-05 21:14:36
阅读次数:
165
"深入浅出乘法逆元" "1.模的运算律" "2.定义" "3.求解" "3.1费马小定理" "3.2扩展欧几里得算法" "3.3线性求解" 表格测试 ======= 深入浅出乘法逆元 模的运算律 先来一波模运算律表: 表格测试 ======= |运算律|内容|hijklkjlk| | | | | | ...
分类:
其他好文 时间:
2018-03-01 17:08:03
阅读次数:
164
在讲解扩展欧几里得之前我们先回顾下辗转相除法: $gcd(a,b)=gcd(b,a\%b)$当$a\%b==0$的时候b即为所求最大公约数 好了切入正题: 简单地来说exgcd函数求解的是$ax+by=gcd(a,b)$的最小正整数解。根据数论的相关知识,一定存在一组解$x,y$使得$ax+by=g ...
分类:
编程语言 时间:
2018-02-28 18:31:52
阅读次数:
184
证明链接:http://blog.csdn.net/lincifer/article/details/49391175 模板: ...
分类:
编程语言 时间:
2018-02-20 17:58:22
阅读次数:
218
一 欧几里得辗转相除法算法 设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),又因 r = a mod b,所以 gcd(a,b)=gcd(b,a mod b)。 证明:①证明充分性。 设 d 为 a,b 的公约数,记作 d|a , d|b ,即a和b都可以被d整除 ...
分类:
编程语言 时间:
2018-02-18 00:22:32
阅读次数:
247
浅谈关于欧几里得的一系列算法 这里有个叫分界线的家伙说,本章的所有讨论均在整数的范围中,所有除法都为带余除法o 朴素欧几里得算法 又名辗转相除法,代码实现如下: 想一想为什么可以这样计算? 我们设 $a=k_1m, \ b=k_2m \ ,gcd(a,b)=m,\ gcd(k_1,k_2)=1$ 很 ...
分类:
编程语言 时间:
2018-02-07 22:50:35
阅读次数:
211