Noip数论
来源:互联网 发布:入门程序员必看书籍 编辑:程序博客网 时间:2024/05/23 13:02
扩展欧几里得
求二元一次不定式方程 的一组解。
int exgcd(int a,int b,int &x,int &y) { int t; if(!b) {x=1;y=0;return a;} t=exgcd(b,a%b,y,x); y-=(a/b)*x; return t;}
线性筛质数
维护一个质数表。对于每个数 , 从小到大枚举所有质数 ,将 打上标记。 如果 , 停止枚举。
void getprime(){ int i,j; for(i=2;i<=n;i++) { if(!b[i]) prime[++tot]=i; for(j=1;j<=tot&&i*prime[j]<=n;j++) { b[i*prime[j]]=true; if(!i%prime[j]) break; } }}
线性求逆元
逆元的定义:称x是a在模b意义下的逆元,可理解为。
给定一个质数 ,求出 至 的逆元。
证明:
费马小定理
若 是质数, 则
证明:
因为 , 所以.
线性求欧拉函数
欧拉函数的定义:小于等于的正整数中与互质的数的个数。
设 为 最小的质数,。在线性筛中,被筛掉。
当时,。
当时,。
void getphi() { int i,j; phi[1]=1; for(i=2;i<=n;i++) { if(!b[i]) { prime[++tot]=i; phi[i]=i-1; } for(j=1;j<=tot;j++) { if(i*prime[j]>n) break; b[i*prime[j]]=true; if(i%prime[j]==0) { phi[i*prime[j]]=phi[i]*prime[j]; break; } else phi[i*prime[j]]=phi[i]*(prime[j]-1); } } }
欧拉定理
若 , 则 。
证明:
记 , 记 为 到 中与 互质的数。
由 消去律 得
Miller-Rabin算法 素数测试
记
在 中随机选取一个整数 , 如果 或 , 那么我们认为n是质数。
错误率不超过1/4,重复若干次即可。
long long mod_mul(long long,long long,long long);long long mod_exp(long long,long long,long long); bool miller_rabbin(long long n) { int i,j,t; long long a,x,y,u; if(n==2)return true; if(n<2||!(n&1)) return false; t=0;u=n-1; while((u&1)==0) t++,u>>=1; for(i=1;i<=tim;i++) { a=rand()%(n-1)+1; x=mod_exp(a,u,n); for(j=0;j<t;j++) { y=mod_mul(x,x,n); if(y==1&&x!=1&&x!=n-1) return false; x=y; } if(x!=1) return false; } return true; } long long mod_mul(long long a,long long b,long long mod) { long long res=0; while(b) { if(b&1) res=(res+a)%mod; a=(a+a)%mod; b>>=1; } return res;}long long mod_exp(long long a,long long b,long long mod) { long long res=1; while(b) { if(b&1) res=mod_mul(res,a,mod); a=mod_mul(a,a,mod); b>>=1; } return res;}
Pollard-rho算法 分解合数
中国剩余定理
解方程组 其中 两两互质。
大步小步法(BSGS)及其拓展
求最小的 使得 , 为质数。
莫比乌斯反演
已知 求 。
原根的基本性质
拉格朗日定理
二次剩余
阅读全文
0 0
- Noip数论
- NOIP数论总结
- noip 数论总结
- noip数论复习总结
- NOIP数论总结
- 暑假NOIP笔记—数论
- [NOIP基础数论]快速幂
- 【NOIP入门数论】分解质因数
- 【NOIP模板②】数论常用函数
- [NOIP 2009]HackSon的趣味题 数论
- 【数论】[NOIP模拟赛]无聊的计算
- [NOIP基础数论]最大公约数和最小公倍数
- [NOIP基础数论]最大公约数和最小公倍数
- NOIP模拟题 2016.11.2 [数论]
- NOIP模拟题[贪心][DP][数论]
- NOIP模拟题[数论}[暴力][拆点]
- [NOIP] [数论] NOIP2017Day1 小凯的疑惑
- XJOI NOIP模拟题2[数论][组合数][树规]
- 静态内部类延迟加载测试
- Add Digits
- 感悟和体会数据结构和算法
- 从JAVA工程师到入门级别大数据科学家的成长路径
- opencv学习——自适应阈值二值化
- Noip数论
- Django框架使用注意点-笔记小结
- freemarker语法笔记
- 输入框只能填写数字,其他值自动清空
- Socket编程 (异步通讯) (Tcp,Udp) 这个是异步
- 类加载过程俗解
- 论文代发一般要注意哪些要求
- postgre SQL 字符串处理总结【后续更新】
- javascript 闭包,小测试