乘法逆元通俗易懂的理解方法
最近,发现数论真的很重要,基本上一套题必出一个数论的题。故接下来,要好好的看一看数论了。
乘法逆元我觉得其本质:就是数论里的倒数。
由上图你会发现:其取模的运算不满足除法的分配律,那么如何求除法的模运算呢?
在我们普通的数学中:
要求 a / b 可以转化为 a x b-1 其中 b x b-1 = 1 ,其中 b-1 称为b的倒数。
那么同理,在数论我们可不可以用上面的那种方法来求b的类似于倒数的数,来将其转换为乘法呢?
答案: 是肯定的,不过在数论里称为乘法的逆元。
有的小伙伴可能初学,不太懂上面的专业术语,故这里解释一下。
上面定义的解释: 上面的那个三条线的符号是同余, 意思就是说 a乘于x取模 和 1 取模是同余的都是1,即余数是相同的。
例子:
2 x 3 ≡ 1 (mod 5 ) 即 2 x 3 对 5 取模和 1 对 5 取模是同余的 都是1 。 其中 3就是 2的乘法逆元。
实战:
你会发现: 我们运用乘法逆元,将其除法变成了一个乘法。这是十分的方便的,尤其是涉及到高精度或者其它的一些情况。
那么,问题来了。如何求一个数的乘法逆元呢?
求乘法逆元的方法有很多,这里先介绍通过运用费马小定理来求逆元。
ap-1 ≡ 1 (mod p ) 等价于 a x ap-2 ≡ 1 (mod p ) 故a的乘法逆元就是 ap-2
注意:乘法逆元不一定是存在的。
a 存在乘法逆元的充要条件是 a 与模数 p 互质。当模数 p 为质数时,ap−2 即为 a 的乘法逆元。
练习题:876. 快速幂求逆元
https://www.acwing.com/problem/content/878/
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long int LL;
LL quick_pow(LL a,LL b, LL p)
{LL res=1;while(b){if(b&1) res=res*a%p;a=a*a%p;b>>=1;}return res;
}
LL gcd(LL a, LL b)
{if(b==0) return a;else return gcd(b,a%b);
}
int main(void)
{LL t,a,p; cin>>t;while(t--){cin>>a>>p;if(gcd(a,p)==1) cout<<quick_pow(a,p-2,p)<<endl;else cout<<"impossible"<<endl;}
}
乘法逆元通俗易懂的理解方法相关推荐
- 求乘法逆元的几种方法
(数学渣,下面的文字可能有误,欢迎指教) 乘法逆元的定义貌似是基于群给出的,比较简单地理解,可以说是倒数的概念的推广.记a的关于模p的逆元为a^-1,则a^-1满足aa^-1≡ 1(mod p) 加减 ...
- java求乘法逆元的代码_求乘法逆元的几种方法
(数学渣,下面的文字可能有误,欢迎指教) 乘法逆元的定义貌似是基于群给出的,比较简单地理解,可以说是倒数的概念的推广.记a的关于模p的逆元为a^-1,则a^-1满足aa^-1≡ 1(mod p) 加减 ...
- 计蒜客 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B coin(求乘法逆元)
Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...
- 乘法逆元的三种求解方法
目录 乘法逆元小结 逆元的定义 求解逆元的方法 1. 快速幂 测试代码 2.拓展欧几里得 测试代码 3.线性算法 例题 AC代码 乘法逆元小结 参考自:点击此处 乘法逆元,一般用于求(a / b)(m ...
- 乘法逆元3种方法总结[最全]
建议大家可以先去看看这篇博文 (https://www.cnblogs.com/dupengcheng/p/5487362.html) 乘法逆元:ax≡1 (mod p) 这个等式用中文描述就是 a乘 ...
- 表格法轻松理解扩展欧几里得算法以及利用其求乘法逆元
文章目录 扩展欧几里得算法 求乘法逆元 扩展欧几里得算法 具体算法的原理参见扩展欧几里得算法求乘法逆元,本文仅以表格的形式展现计算过程,浅显易懂.下面通过例子进行说明. 例:求1234和4321的最大 ...
- zoj-3624(Count Path Pair)组合数+乘法逆元
题意:给你4个点A(0,0),B(p,0),C(m,q),D(m,n)问:A-->D&& B-->C在不相交的情况下有多少种方法 此题在比赛中题目理解错了,英语水平还是太弱 ...
- 扩展欧几里得算法、乘法逆元与中国剩余定理
文章目录 前言 定义.定理和部分证明 整除 定义 定理 定理的证明 同余 定义 同余的性质 同余的运算律 运算律的证明 扩展欧几里得算法 代码模板 算法详解 乘法逆元 求解逆元 乘法逆元的作用 中国剩 ...
- Python在GF(2⁸)有限域上求解多项式的乘法逆元——基于扩展欧几里得算法
文章目录 一.前言 二.数学基础 1.GF(2⁸)有限域内的多项式 2.不可约多项式 3.多项式模运算 3.乘法逆元 三.算法步骤 1.扩展欧几里得算法 2.多项式除法 3.多项式乘法 四.代码实现 ...
最新文章
- 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生
- linux时间格式怎么写,linux基础--时间格式
- ArcGIS怎样获取重分类后各类所占的像元个数
- 1、vue 笔记之 组件
- Linux内核分析:recv、recvfrom、recvmsg函数实现
- arcmap 影像坐标批处理 python_ArcMap怎么把坐标系转换成投影坐标系?
- HiJson(Json格式化工具)
- 使用idea打包war包部署
- 杭州十二条经典登山路线
- 汇总:各类手游渠道特点及选择方法
- win7网上邻居无计算机一栏,Win7在网上邻居上看不到别的电脑怎么办?-电脑自学网...
- 招银网络2018笔试分享
- 手机、手环NFC刷门禁卡
- NeuroImage:对情绪表现的快速接近—回避反应反映了基于价值的决策:来自脑电图研究的神经证据
- Qt 测量函数运行耗时
- html控制checkbox选中状态,怎么设置checkbox 选中状态
- 20美金 php,树莓派|个头小本事大:13 种 20 美元以下的树莓派 Zero 替代品
- 国仁网络资讯:微信视频号运营中常遇见的10大问题;新手必知的疑难杂症。【建议收藏】
- Misc-登机牌[i春秋][150pt]
- ImageMagick将多张图片拼接成一张图片_长图拼接app下载-长图拼接最新版下载v2.8.6...