扩展欧几里得算法 求逆元就不说了。 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均有唯一的与之对应的乘法逆元x,使得 ax≡1(mod n) 。 一个数有逆元的充分必要条件是 gcd(a,n)=1 ,此时逆元唯一存在。 逆元的含义:模 n 意义下,1个数 a 如果有逆元 x ,那么除以 a 相当于乘以 x 。 一 扩展欧几里得求逆元 将方 ...
分类:
其他好文 时间:
2018-03-06 19:10:34
阅读次数:
106
思路:枚举 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
#include using namespace std; int exgcd(int a, int b, int &x, int &y) { if (b == 0) { x = 1; y = 0; } else{ exgcd(b, a%b, y, x); y-=x*(a/b); } } int m... ...
分类:
其他好文 时间:
2018-03-04 18:04:43
阅读次数:
164
二元不定方程,就是形同ax+by=c的二元方程, 只不过有无数组解罢了。 还有原谅我蒟蒻,不会用字母的写法,只好直觉+小学数学写法了 我们可以使用辗转相除法来解决(过渡好生硬啊) 我们首先来看一组例子 为了方便理解,特将每个多项式系数都写了出来,同时并没有将符号带进括号 那怎么求出其他的特值捏? 对 ...
分类:
其他好文 时间:
2018-03-02 20:49:04
阅读次数:
201
"深入浅出乘法逆元" "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
一, 扩展欧几里得 二,费马小定理求逆元 要求:模数p为质数 费马小定理:a^(p-1)=1(mod p) 那么a^(p-2)=a^-1(mod p) 也就是说a的逆元为a^(p-2) 直接快速幂求逆元 三:快速求出多个数(1-n)的逆元 O(n)递推 ...
分类:
其他好文 时间:
2018-02-23 22:11:24
阅读次数:
181
若有以下两个同余方程 x ≡ a1 mod n1 x ≡ a2 mod n2 x= n1*k1+a1 = n2*k2+a2 ∴ n1*k1 = n2*k2+a2-a1 ∴ n1*k1 ≡ a2-a1 mod n2 由扩展欧几里得定理得,同余方程有解的条件是 gcd(n1,n2) | (a2-a1) ...
分类:
其他好文 时间:
2018-02-22 16:42:13
阅读次数:
134