逆元
2015-06-05 23:32
204 查看
数论中的逆元定义为:
设m是一个整数,a是满足(a,m)= 1 的整数,则存在唯一的整数a#,1<=a#<m,
使得 a *a# = 1( mod m);
a#称为a的逆元;
求逆元的方法,可以用扩展欧几里得算法;
sa+tm=(a,m)=1;
因此整数a#满足a# mod m=s满足a*a# = 1(mod m);
代码:
设m是一个整数,a是满足(a,m)= 1 的整数,则存在唯一的整数a#,1<=a#<m,
使得 a *a# = 1( mod m);
a#称为a的逆元;
求逆元的方法,可以用扩展欧几里得算法;
sa+tm=(a,m)=1;
因此整数a#满足a# mod m=s满足a*a# = 1(mod m);
代码:
[code]long long ext_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 = ext_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 = ext_gcd(a,n,x,y); if (d == 1) return (x%n + n) % n; else return -1; }
相关文章推荐
- 有趣的语境不对等
- 汇编指令汇总
- Android抽象布局——include、merge 、ViewStub .
- 第十四周 项目二:用文件保存的学生名单
- 容斥原理
- UVA 11029 【快速幂】
- git 在win7上安装获取linux(centos)上面的remote repository的代码
- c语言循环链表的问题
- 关于头文件和库文件
- 谈谈WEB开发中的苦大难字符集问题
- 最大流SAP模板(邻接矩阵)
- POJ 1273 DRAINAGE DITCHES【最大流】
- MultiWarhead 帮助文档设计
- Android学习日记(9)
- 最大流SAP -邻接表模板
- java相关知识介绍
- stream_context_create()模拟POST/GET
- LIGHTOJ 1005 – ROOKS
- 史上最全最强SpringMVC详细示例实战教程
- MultiWarhead 球缺罩界面设计