乘法逆元及其求法

乘法逆元及其求法一 相关定理介绍 1 乘法逆元如果 ax 1 modp 且 gcd a p 1 a 与 p 互质 则称 a 关于模 p 的乘法逆元为 x 下文中 x 都表示乘法逆元 2 费马小定理假如 a 是一个整数 p 是一个质数 那么是 p 的倍数 可以表示为或者写作 3 扩展欧几里得定理已知整数 a b 扩展欧几里得算法可以在求得 a b 的最大公约数的同时 能找到整数 x y 其中一个很可能是负数 使它们满足贝祖等式 二 乘法逆元的求

一、相关定理介绍
1.乘法逆元


如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p的乘法逆元为x。下文中,x都表示乘法逆元。
2.费马小定理

假如a是一个整数,p是一个质数,那么a^p - a是p的倍数,可以表示为

a^p \equiv a \pmod{p}
或者写作:
乘法逆元及其求法
3.扩展欧几里得定理
已知整数a、b,扩展欧几里得算法可以在求得a、b的 最大公约数
的同时,能找到整数x、y(其中一个很可能是负数),使它们满足 贝祖等式
ax + by = \gcd(a, b)


二、乘法逆元的求法
1.费马小定理
由费马小定理 a
p-1
≡1 , 变形得 a*a
p-2
≡1(mod p),答案已经很明显了:若a,p互质,因为a*a
p-2
≡1(mod p)且a*x≡1(mod p),则x=a
p-2
(mod p),用快速幂可快速求之
.
2.扩展欧几里得

我们都知道模就是余数,比如12%5=12-5*2=2,18%4=18-4*4=2。(/是程序运算中的除)

那么ax≡1 (mod p)即ax-yp=1.把y写成+的形式就是ax+py=1,为方便理解下面我们把p写成b就是ax+by=1。就表示x是a的模b乘法逆元,y是b的模a乘法逆元。然后就可以用扩展欧几里得求了。


三、乘法逆元与除法取模

求a/b=x(mod M)

只要M是一个素数,而且b不是M的倍数,就可以用一个逆元整数b1,通过 a/b=a*b1 (mod M),只能来以乘换除。
费马小定理:对于素数 M 任意不是 M 的倍数的 b,都有:b ^ (M-1) = 1 (mod M)
于是可以拆成:b*b^(M-2)=1(mod M)
于是:a/b=a/b*(b * b ^ (M-2))=a*(b ^ (M-2)) (mod M)


求a/b=x(mod M)

用扩展欧几里德算法算出b1,然后计算a*b1(mod M)

exgcd(b,M,x,y);   b1=x;

 


 

证明:

设x = p % a,y = p / a
于是有 x + y * a = p
(x + y * a) % p = 0
移项得 x % p = (-y) * a % p
x * inv(a) % p = (-y) % p
inv(a) = (p – y) * inv(x) % p
于是 inv(a) = (p – p / a) * inv(p % a) % p





然后一直递归到1为止,因为1的逆元就是1


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202879.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午11:06
下一篇 2026年3月19日 下午11:06


相关推荐

  • HP-UX 六大虚拟化技术之“网络”

    HP-UX 六大虚拟化技术之“网络”

    2021年8月5日
    44
  • 查看本机出口ip

    查看本机出口ip概述日常我们在不同机器上配置一些服务组件互相连通的时 需要知道机器的出口 ip 有哪些方法呢 一 Windows mac 机器可以用浏览器访问 1 http www ip138 com 2 http tool chinaz com 3 在百度搜索框内输入 ip 会自动识别出来当前的出口 IP2 Linux 命令行接口获取方式 1 https ipinfo io root test curlipinfo

    2026年3月18日
    1
  • 关联数据及其应用

    关联数据及其应用转载自:http://blog.sciencenet.cn/blog-357889-578799.html关联数据(LinkedData)是万维网的发明人——蒂姆•伯纳斯-李(TimBerners-Lee)——提出的一种万维网上发布数据的方式,可以看成语义Web的一种实现方式。它一般要求采用RDF数据模型,利用URI(统一资源标识符)命名数据实体,发布和部署实例数据和类数据

    2022年7月17日
    24
  • 【Claude Code系列教程】 hooks

    【Claude Code系列教程】 hooks

    2026年3月15日
    2
  • application/json 四种常见的 POST 提交数据方式

    application/json 四种常见的 POST 提交数据方式application json 四种常见的 POST 提交数据方式转载声明 本文系转载自以下两篇文章 四种常见的 POST 提交数据方式作者 沧海一滴转载仅为方便学习查看 一切权利属于原作者 本人只是做了整理和排版 如果带来不便请联系我删除 0x01 摘要 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码 默认地 表单数据会编码为 applicatio

    2026年3月19日
    3
  • labelme使用教程_labelme和labelimg区别

    labelme使用教程_labelme和labelimg区别LabelMe可用于实例分割,语义分割,目标检测,分类任务的数据集标注工作。在线标注版本:http://labelme2.csail.mit.edu/Release3.0/index.php?message=1python版本:https://github.com/wkentaro/labelme分类标注:Classification目标检测标注:ObjectDetection语义分割标注:SemanticSegmentation实例分割标注:InstanceSegmentation视频

    2025年11月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号