算法笔记--逆元
来源:互联网 发布:淘宝店铺严重违规12分 编辑:程序博客网 时间:2024/06/05 15:32
逆元:(b/a)(mod m) = (b*x)(mod m)x表示a的逆元,并且a*x=1(mod m) 注意:只有当a与n互质的时候才存在逆元求逆元方法:1.费马小定理因为a^phi(m)=1(mod m),所以逆元为a^(phi(m)-1)(mod m)特别地,如果m为质数,逆元为a^(m-2)(mod m)2.扩展欧几里德 //返回d=gcd(a,b);和对应于等式ax+by=d中的x,ylong long extend_gcd(long long a, long long b, long long &x, long long &y) { if (a==0 && b==0) return -1;//无最大公约数 if (b == 0) { x = 1; y = 0; return a; } long long d = extend_gcd(b, a%b , y, x); y -= a/b*x; return d;}//求逆元素//ax = 1(mod n)long long mod_reverse(long long a, long long n) { long long x, y; long long d = extend_gcd(a, n, x, y); if (d == 1) return (x%n+n)%n; else return -1;}3.O(n)时间求逆的代码(MOD必须是素数)long long inv[MAXN];inv[1] = 1;for (long long i = 2; i < MAXN; i++) { inv[i] = inv[MOD%i]*(MOD-MOD/i)%MOD;}4.有一种通用的求逆元方法,适合所有情况。公式如下:(b/a)%m = b%(m*a)/a#define LL long longLL PowMod(LL a, LL b, LL MOD){ LL ret = 1; while (b) { if (b&1) ret = (ret*a)%MOD; a = (a*a) % MOD; b >>= 1; } return ret;}LL mod_reverse(LL a,LL n){ return PowMod(a,n-2,n);}
//预处理出1-500的阶乘的逆元//返回d=gcd(a,b);和对应于等式ax+by=d中的x,ylong long quipow(long long a,long long b){ long long ans=1; while(b) { if(b&1) ans=ans*a%mod; b>>=1; a=a*a%mod; } return ans%mod;}//fact[i]的的逆元nv[i]long long fac[505],inv[505];void prepare() ////阶乘逆元{ fac[0]=fac[1]=1; for(int i=2;i<=500;i++) fac[i]=fac[i-1]*i%mod; inv[500]=quipow(fac[500],mod-2); for(int i=500-1;i>=0;i--) inv[i]=inv[i+1]*(i+1)%mod;}
阅读全文
0 0
- 算法笔记--逆元
- AdaBoost元算法学习笔记
- 逆元笔记
- 【元数据分布算法研究笔记】-HAP
- 欧几里得算法与逆元
- 欧几里得算法与逆元
- 【元数据分布算法研究笔记】-Lazy Hybrid
- 利用AdaBoost元算法的分类器(代码笔记)
- 扩展欧几里得算法求乘法逆元
- HDU 4622 莫队算法+逆元
- 扩展欧几里得算法(最大公约数及逆元)算法
- 欧几里德算法、扩展欧几里德算法、乘法逆元
- 欧几里得算法与扩展欧几里得算法与逆元
- AdaBoost元算法
- N元分词算法
- 元编程算法示例
- 《Ruby 元编程》笔记
- 元组笔记
- 2017年6月30日,周结(十九),大三期末总结(二)
- MySql高级查询
- Leetcode--136.Single Number
- std::map用法
- Stateless functional component 和 shouldComponentUpdate
- 算法笔记--逆元
- 1072: [SCOI2007]排列perm
- css定位的使用方法
- github 创建远程分支以及远程分支无法删除的问题解决
- Windows下elasticsearch安装jieba分词插件
- ReentrantLock锁与内置锁synchronized
- <AFNI>AFNI使用要点
- TCP与UDP的选择--结合QQ来说明
- HDU3047Zjnu Stadium(并查集)