ACM 乘法逆元 模板
2014-08-24 21:24
253 查看
乘法逆元
方法一:扩展欧几里得
方法二:费马小定理,快速幂
根据费马小定理:
已知p是质数且gcd(a, p) = 1,则 ap-1 ≡ 1 (mod p), 所以 a*ap-2 ≡ 1 (mod p)。
a^(p-2)就是a的逆元了
参考:逆元详解
方法一:扩展欧几里得
lint ex_gcd(lint a,lint b,lint &x,lint &y)//扩展欧几里得(扩展gcd) { if (a==0&&b==0) return -1; if (b==0){x=1;y=0;return a;} lint d=ex_gcd(b,a%b,y,x); y-=a/b*x; return d; } lint mod_inverse(lint a,lint n)//乘法逆元 { lint x,y; lint d = ex_gcd(a,n,x,y); return (x%n+n)%n; }
方法二:费马小定理,快速幂
根据费马小定理:
已知p是质数且gcd(a, p) = 1,则 ap-1 ≡ 1 (mod p), 所以 a*ap-2 ≡ 1 (mod p)。
a^(p-2)就是a的逆元了
int find(int x) { int k=mod-2,ans=1; while(k) { if (k&1) ans=(lint)ans*x%mod; x=(lint)x*x%mod; k>>=1; } return ans; } x在%mod下的逆元
参考:逆元详解
相关文章推荐
- ACM~比较大小-类模板
- Loj-110乘法逆元(线性模板题)
- “玲珑杯”ACM比赛 Round #18 C -- 图论你先敲完模板【Dp】
- 玲珑杯”ACM比赛 Round #18 C -- 图论你先敲完模板
- ACM 模板列表
- [ACM模板] BigInt高精度加/减/除法
- acm相关模板(浙江大学V.2002版本)
- ACM 母函数模板 详解 + 理解!
- acm 模板
- ACM算法模板
- ACM/CF赛制getstart模板
- acm模板:bfs和spfa最短路算法的区别,细节
- ACM模板--邻接矩阵 有向图
- 【转】ACM高精度模板
- ACM_模板_二分图匹配(匈牙利算法)-DFS
- 模板【洛谷P3811】 【模板】乘法逆元
- “玲珑杯”ACM比赛 Round #18 C -- 图论你先敲完模板(dp)
- ACM模板——最长上升子序列(LIS)
- ACM模板——KMP算法
- ACM常用模板——数据结构——优先队列(堆)