用法:用于除法取模 思路:扩欧 要求:b、p互质 设k为b的乘法逆元: 则在求解除法取模问题时: 有(a/b)%p =>(a*k)%p 当b很大时,用除法会出现精度问题。。so 乘法逆元: 如果b*k ≡ 1 (mod p) 则称k是b关于p的乘法逆元 我们可以通过求 b 关于 p 的乘法逆元 k, ...
分类:
其他好文 时间:
2016-11-09 22:35:07
阅读次数:
204
今天考试了,三道题分别是求欧拉,逆欧拉,欧拉求和 对于我这样的蒟蒻来说,我选择狗带。 爆零稳稳的。 现在整理一下; φ(n)(欧拉函数值)为不大于n的正整数中与n互质的数的个数; 有几条这样的性质: 1.欧拉函数是积性函数,但不是完全积性函数,即φ(mn)=φ(n)*φ(m)只在(n,m)=1时成立 ...
分类:
其他好文 时间:
2016-11-06 09:39:20
阅读次数:
264
欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。 算法依赖于定理: 两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数. 代码很简单,思想最重要. 欧几里得扩展算法等后续吧.... ...
分类:
编程语言 时间:
2016-10-19 02:47:51
阅读次数:
328
扩展欧几里得模板套一下就A了,不过要注意刚好整除的时候,代码中有注释 ...
分类:
其他好文 时间:
2016-09-30 23:25:09
阅读次数:
159
题意:已知青蛙1位置x,速度m,青蛙2位置y,速度n,纬线长度为l,求他们相遇时最少跳跃次数。 思路:设最小跳跃次数为k,则(x + k*m) - (y + k*n) = q*l;经过整理得到k*(n-m) + q*l = y - x;此时k和l为变量。欧几里得扩展中有线性方程a*x+b*y = c ...
分类:
其他好文 时间:
2016-06-08 18:52:38
阅读次数:
197
扩展欧几里得挺早就会了,但是当时不会证明,现在可以自己推导出来了,下面说一下推导过程。 首先给你a,b,让你求出一组x,y,满足ax+by=gcd(a,b).这个gcd是很轻松可以得到的,但是x和y呢?其实我们也可以在求gcd的时候顺便得到一组解。 先看看我们是怎么求gcd的:ans=gcd(b,a ...
分类:
其他好文 时间:
2016-04-17 11:37:25
阅读次数:
131
//poj 1061思路:两只青蛙跳一次所花费的时间相同,我们设其为t,则x+mt是青蛙A从坐标原点到终点所走的距离,y+nt是B走的距离,要想碰面,则他们相减一定是地面周长的整数倍,设为k*L;则:(x+mt)-(y+nt)=kl;变形得:(m-n)t-(y-x)=kL;即有(m-n)t mod ...
分类:
其他好文 时间:
2015-03-08 11:37:08
阅读次数:
183
我们知道欧几里得扩展定理是同余方程ax≡b(mod c)解得有力方法。这个方程可能有解也可能没有解,下面给出有解的条件: 定理:同余方程ax≡b(mod c)有解,当且仅当gcd(a,c)|b,且方程有gcd(a,c)个解。 原因是求ax≡b(mod c)可以转化为求ax+cy=b。 令:...
分类:
其他好文 时间:
2014-12-07 16:23:08
阅读次数:
201
欧几里得算法,即辗转相除法,用于求整数a,b的最大公约数。
欧几里得算法C++实现代码:(无需确定 a,b 大小关系)
long long gcd(long long a,long long b){
return b?gcd(b,a%b):a;
}
扩展欧几里得算法:设a和b不全为0,则存在整数x和y,使得 gcd(a,b) = xa + yb
证明: 假设 a...
分类:
编程语言 时间:
2014-12-02 13:36:53
阅读次数:
193