GCD 扩展GCD 快速GCD 模线性方程 模线性方程组 单独求欧拉函数 递推求欧拉函数
来源:互联网 发布:mac os 10.13 cdr 编辑:程序博客网 时间:2024/06/06 00:23
GCD:
int GCD(int x, int y){ if (!x || !y) return x>y ? x: y; for (int t; t=x%y; x=y,y=t) ; return y;}
扩展GCD: 求 x,y 使 gcd(a,b)=a*x+b*y;
int extGCD(int a, int b, int &x, int &y){ if (!b) {x=1; y=0; return a; } int d=extGCD(b,a%b,x,y); int t=x; x=y; y=t-a/b*y; return d;}
快速GCD:某些大数据不能通过。
int kGCD(int x, int y){ if (!x || !y) return x>y ? x: y; if (!(x & 1) && !(y & 1)) return kGCD(x >> 1, y >> 1) << 1; else if (!(y & 1)) return kGCD(x,y >>1); else if (!(x & 1)) return kGCD(x >> 1,y); else return kGCD(abs(x-y),min(x,y));}
模线性方程:a*x = b(mod n)
void modeq(int a, int b, int n){ int d,x,y; d=extGCD(a,n,x,y); if (b%d>0) printf("No Answer!\n"); else { int e=(x*(b/d))%n; for (int i=0; i<d; i++) // x¿ÉÄÜ<0 ? printf("%d-th ans: %d\n",i+1,(e+i*(n/d))%n); }}
模线性方程组:a=b[k](mod b[k]); 其中w,b已知,w[i]>0 且w[i]与w[j]互质,求a;(中国余数定理)
int china(int b[], int w[], int k){ int n=1,a=0; for (int i=0; i<k; i++) n*=w[i]; // 注意不要overflow; for (int i=0; i<k; i++) { int m,d,x,y; m=n/w[i]; d=extGCD(w[i],m,x,y); a=(a+y*m*b[i])%n; } if (a>0) return a; else return (a+n);}
单独求欧拉函数:
int euler(int x){ int res=x; for (int i=2; i*i<=x; i++) if (x % i==0) { res=res/i*(i-1); while(x % i==0) x/=i; } if (x>1) res=res/x*(x-1); return res;}
递推求欧拉函数:
int main(){ int maxn=100; int phi[maxn+1]; for (int i=1; i<=maxn; i++) phi[i]=i; for (int i=2; i<=maxn; i+=2) phi[i]>>=1; for (int i=3; i<=maxn; i+=2) if (phi[i]==i) { for (int j=i; j<=maxn; j+=i) phi[j]=phi[j]/i*(i-1); } return 0;}
- GCD 扩展GCD 快速GCD 模线性方程 模线性方程组 单独求欧拉函数 递推求欧拉函数
- 扩展gcd&模线性方程
- 【数论】gcd|扩展gcd|素数筛法|快速幂|欧拉函数(各种模板)
- GCD,快速GCD,扩展GCD
- 1199. GCD(欧拉函数)
- 欧拉函数 与 GCD
- uva11426(gcd + 欧拉函数)
- hdoj2588 GCD欧拉函数
- 【bzoj2818】Gcd 欧拉函数
- 2818: Gcd 欧拉函数
- hdu2588 GCD(欧拉函数)
- Hdu2588 GCD 欧拉函数
- 【bzoj2818】Gcd 欧拉函数
- [HDU2588]GCD 欧拉函数
- [bzoj2818]Gcd 欧拉函数
- UVA11426 GCD - Extreme (II) 欧拉函数`扩展欧几里德应用
- 素数--筛选法打表,快速幂,欧拉函数,gcd
- BZOJ_P2818 GCD(数论GCD+欧拉函数线性筛)
- 3468 A Simple Problem with Integers 线段树
- JSON文档解析 三种方法
- 为什么Java byte 类型的取值范围是-128~127
- python循环for,range,xrange;while
- hdu 4611 Balls Rearrangement 多校第二场
- GCD 扩展GCD 快速GCD 模线性方程 模线性方程组 单独求欧拉函数 递推求欧拉函数
- 贪心——NYOJ 题目236 心急的C小加
- hdu 3790 最短路径问题 (dijkstra算法+memset()用法)
- POJ 2954 Triangle (pick 定理)
- 安卓调试时ADB server didn't ACK的终极解决办法
- 马的走法
- 配置普通用户有使用sudo命令的权限
- Android apk反编译和odex转dex
- XMPP协议的原理介绍