基础数论学习笔记-----------逆元【除法取模运算的关键】
来源:互联网 发布:少年西游记源码 编辑:程序博客网 时间:2024/05/22 13:34
逆元
一、什么是逆元?
如果存在一个最小的正整数的解x使得:ax≡1(mod m);那么称作x是a的逆元。
二、求逆元有什么用处呢?
在有除法的取模运算:(b/a)%m中,对于取模运算中,+ - *是没有错误的,所以直接相除再取模的结果不一定就是正确的。
如果我们此时有a的逆元,那么结果就是:(b*a的逆元)%m;
将除法很巧妙的变成了乘法。
三、那么我们如何求逆元呢?
求解逆元的过程其实并不难,通常我们用拓展欧几里得算法来求逆元。
对于:ax≡1(mod m)
我们根据数学的基础知识不难将其转化为:ax=1+k*m(这里k是一个>=0的整数);
那么就有:ax-k*m=1;那么求解这个x我们就可以用拓展欧几里得算法来求得。
从上式我们也不难理解,想要求a的逆元,需要满足:gcd(a,m)==1;
四、实现代码:
int ex_gcd(int a,int b,int &x,int &y) { if(b==0) { x=1; y=0; return a; } int ans=ex_gcd(b,a%b,x,y); int tmp=x; x=y; y=tmp-a/b*y; return ans; } int mod_inverse(int a,int m){ int x,y; ex_gcd(a,m,x,y); return (x%m+m)%m;//如果直接求解出来的x是一个负数,那么显然我们要将其转化成正数。}
0 0
- 基础数论学习笔记-----------逆元【除法取模运算的关键】
- 除法的取模运算
- 【数论】 通过逆元实现大整数除法的取余
- Kickstart Round A 2017 Problem A. Square Counting 公式、数论逆元、除法取模
- 除法取模与逆元
- 乘法逆元(除法取模)
- 除法取模(逆元)
- 除法取模与逆元
- 除法取模 逆元 费马小定理
- 除法取模与逆元
- 除法取模和逆元
- 负数的除法和取模运算
- 除法取模与逆元/费马小定理
- 小知♂识 除法取模 逆元♂
- 除法取模与逆元/费马小定理
- 除法取模与逆元--hdu3970 Harmonious Set
- 移位运算与除法、取模运算
- 【带除法的取模运算】hnoi2009有趣的数列
- Android动态控制布局中view的起点
- java创建临时文件
- 关于java的回调的一个例子
- LNK1169
- 通过live555实现H264 RTSP直播
- 基础数论学习笔记-----------逆元【除法取模运算的关键】
- 跨域请求方式三:window.name 跨域实现原理
- MySQL分页拉取和客户端数据重复问题
- java 获取当前类文件的字符集编码
- 人脸检测一个小综述
- 洛谷 P1433 吃奶酪
- u
- pycharm 误删掉项目文件处理办法
- viewpager图片点击事件