码迷,mamicode.com
首页 >  
搜索关键字:扩展欧几里得算法    ( 165个结果
POJ2115 C Looooops(线性同余方程)
无符号k位数溢出就相当于mod 2k,然后设循环x次A等于B,就可以列出方程: $$ Cx+A \equiv B \pmod {2^k} $$ $$ Cx \equiv B-A \pmod {2^k} $$ 最后就用扩展欧几里得算法求出这个线性同余方程的最小非负整数解。 1 #include<cst
分类:其他好文   时间:2016-02-03 20:01:31    阅读次数:146
扩展欧几里得算法
证明:这种问题用数学语言来说就是求整数x、y使得ax+by=1。不难发现,若gcd(a,b)!=1时必定无解,相反的,若gcd(a,b)=1那就必定有一整数对(x,y)满足ax+by=gcd(a,b),可以用扩展欧几里得算法对答案进行求解假设我们已经求得b*xt+(a%b)yt=gcd(b,a%b)...
分类:编程语言   时间:2016-01-25 16:29:52    阅读次数:138
扩展欧几里得算法
首先、扩展欧几里得定理:对于两个不全为0的整数a、b,必存在一组解x,y,使得ax+by==gcd(a,b);int gcd(int a,int b){ int t,d; if(b==0) { x=1; y=0; //不明处1return a; ...
分类:编程语言   时间:2015-10-27 17:38:06    阅读次数:208
扩展欧几里得算法(extgcd)
相信大家对欧几里得算法,即辗转相除法不陌生吧。代码如下:int gcd(int a, int b){ return !b ? gcd(b, a % b) : a;}而扩展欧几里得算法,顾名思义就是对欧几里得算法的扩展。切入正题:首先我们来看一个问题:求整数x, y使得ax + by = 1, ...
分类:编程语言   时间:2015-09-08 22:06:41    阅读次数:197
扩展欧几里得算法
1 欧几里得算法标准代码这个代码算的是符合a * x + b * y = gcd(a, b)的一组x, y, 同时返回了gcd(a, b)因为a * x1 + b * y1 = gcd(a, b) gcd(a, b) = gcd(b, a % b)那么a * x1 + b * y1 = gcd(b....
分类:编程语言   时间:2015-09-03 19:09:28    阅读次数:166
扩展欧几里得算法求解不定方程【例 poj 1061】
扩展欧几里得算法是数论当中一种常用的算法,他可以用如下的姿势来表达:设a, b为不全为0的整数,则存在整数x和y,使得 gcd(a, b) = a*x + b*y。证明就略去。树上还有一个拉梅定理:用欧几里得算法计算两个正整数的最大公因子时,所需要的除法次数不会超过两个整数中较小的那个十进制数的倍数...
分类:编程语言   时间:2015-09-02 18:46:32    阅读次数:307
POJ 1061 青蛙绕地球约会-数论-(解一元一次同余方程+扩展欧几里得算法)
题意:两只青蛙同向跳,起点是x,y,每次分别跳m,n米,地球周长是L,求最少跳几次相遇。 分析: 把式子写好就发现是一个一元一次同余方程。用扩展欧几里得算法来求。这题很基本得会。 代码: #include #include #include #include #include #include #define INF 1000000007 using namespace std; long...
分类:编程语言   时间:2015-08-14 06:30:49    阅读次数:180
POJ 2115 for求循环次数-数论-(同余方程+扩展欧几里得算法)
题意:给定for循环的初始值,结束值和增量,还有一个模,求最少的循环次数。 分析: 读完题后应该就知道是一个同余的概念,所以就是解一个一元一次同余方程,像上题一样用扩展欧几里得算法。这题的trick点是k最大为32,那么2^32超出了int,要用long long,所以在1 代码: #include #include #include #include #include #include ...
分类:编程语言   时间:2015-08-14 06:29:55    阅读次数:177
扩展欧几里得算法
对于 a 、b 不全为0,存在整数 x 和 y 使得 gcd(a,b)=x*a+y*b ; 整数。。。也就是可以使负的。 代码: 1 int exGcd(int a,int b,int &x,int &y) 2 { 3 if(b==0) 4 { 5 x=1; 6 y=0...
分类:编程语言   时间:2015-08-06 01:56:41    阅读次数:126
poj(1061)——青蛙的约会(扩展欧几里得算法)
这道题的思路是首先我们要列出一个方程: 设它们两个所走的步数为s,那么  x+ms-(y+ns)=kL  ;这里k的意思是它们两个距离的差值必须是L的整数倍。 那么整理后可以得到:(n-m)*s+kL=x-y; 我们令a=n-m, b=L, d=x-y;  那么这个方程的形式不就相当于是一个扩展欧几里得的式子吗。 我们先求出 as1+bk1=gcd(a,b) 这个式子的特解,令c=gcd(a...
分类:编程语言   时间:2015-08-04 11:13:49    阅读次数:257
165条   上一页 1 ... 11 12 13 14 15 ... 17 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!