在上一次总结过后鸽了没多久其实是快要开学赶紧来肝上两篇 今日内容——同余方程和扩展欧几里得算法 同余 同余的定义:若存在两个整数a,b,使得(a - b) MOD P为0,则称作a与b在MOD P的情况下同余 换种通俗的说法,就是,a MOD P与b MOD P相等 记作 \( a\equiv b ...
分类:
编程语言 时间:
2018-07-25 01:09:28
阅读次数:
198
exgcd(a,b,x,y) { if(b==0) x=1,y=0; else exgcd(a,a%b,y,x-(a/b)*y; } ax1+by1=c; ax2+by2=c; a(x1-x2)+b(y1-y2)=0; x=x1-x2; y=y1-y2; g=gcd(a,b); a=a0*g; b= ...
分类:
编程语言 时间:
2018-07-01 11:50:18
阅读次数:
139
RSA RSA算法是第一个能同时用于加密和 "数字签名" 的算法,也易于理解和操作。RSA是被研究得最广泛的 "公钥" 算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密 ...
分类:
其他好文 时间:
2018-06-14 18:37:52
阅读次数:
238
欧几里得算法 注:欧几里得算法是用来计算最大公约数的一个算法.主要的代码实现如下: int gcd(int a,int b){ return !b?a:gcd(b,a%b); } 如果这个式子成立的话,不断重复利用这个式子来计算,直到a和b中有一个数变为 0的时候,就可以求出了他们的最大公约数。 举 ...
分类:
编程语言 时间:
2018-05-24 20:37:54
阅读次数:
248
题目链接: https://cn.vjudge.net/problem/POJ-1061 题目大意: 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的 ...
分类:
编程语言 时间:
2018-05-15 01:43:27
阅读次数:
270
题目大意 给出$a,b,c,x_1,x_2,y_1,y_2$,求满足$ax+by+c=0$,且$x\in[x1,x2],y\in [y1,y2]$的整数解有多少对。 题解 用扩展欧几里得算法算出方程$ax+by= c$的一个解,再将该解移动到题目所要求的范围内。具体操作看代码。 ...
分类:
其他好文 时间:
2018-05-07 00:46:11
阅读次数:
176
ACM数论——欧几里得与拓展欧几里得 欧几里得算法: 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 int gcd(int a,int b) { ...
分类:
其他好文 时间:
2018-05-06 17:00:45
阅读次数:
210
如何解方程a*x≡b(mod m)呢?因为a*x-b|m, 故令a*x-b=-y*m,即a*x+m*y=b。根据Bezout定理,该方程有解当且仅当gcd(a,m)|b。我们把等式两边同乘以gcd(a,m)/b,得到a*x0+m*y0=gcd(a, m)。这个方程可以用扩展欧几里得算法求得得到x0。 ...
分类:
其他好文 时间:
2018-04-22 17:21:10
阅读次数:
176
NO.5章 入门篇(3)——数学问题 1. 最大公约数 最小公倍数 1)最大公约数 (GCD) 2)最小公倍数 (LCM) 2. 分数四则运算 1)表示与化简 2)四则运算 3)输出 3. 素数 1)判断 2)获取 4. 质因子分解 5. 大整数运算 1)存储 2)四则运算 6. 扩展欧几里得算法 ...
分类:
其他好文 时间:
2018-04-13 21:24:45
阅读次数:
156
代码: 1)扩展欧几里得算法求ax+by=c时 2)求解模线性方程 ax = b(mod n) 同余方程 ax≡b (mod n)对于未知数 x 有解,当且仅当 gcd(a,n) | b。且方程有解时,方程有 gcd(a,n) 个解。 求解方程 ax≡b (mod n) 相当于求解方程 ax+ ny ...
分类:
编程语言 时间:
2018-04-11 00:08:55
阅读次数:
243