当前位置:网站首页>扩展欧几里得求逆元实例
扩展欧几里得求逆元实例
2022-08-03 15:33:00 【PolarDay.】
扩展欧几里得求逆元实例
首先说一下逆元的定义
存在一个数a使得ax对y进行取余运算,得到的值是1,则称a是x的逆元。在数学中记做:a * x = 1(mod p)
例如x = 4,y = 11,3x = 1(mod y),3 × 4 = 12,12 mod 11 = 1 , 3就是x的逆元。
对于求逆元这一操作在计算机领域主要用于非对称加密,如我们常见的RSA加密算法等。
那应该求得这个逆元呢,我们知道,再求两个数的最大公约数的时候可以用欧几里得算法。
在欧几里得算法中,通过辗转相除,当余数为0的时候最后的除数就是两个数的最大公约数。
而在其扩展算法中,我们已知两个数的最大公约数,我们已知 ax = 1(mod p),
展开就是 ax mod p = 1,首先我们先求 p = x1 * a + p1,然后 p = a,a = p1,迭代下去直到pi = 1(i表示出了i次)为止
然后就可以得出 1 = p - xi * a,此时的a和p已经不是我们初始的a和p了,我们需要往前推,推到 1= xa + yp 为止,此时得出的x就是a的逆元,当然如果逆元x为负数,或者比p大,要对其就行取余操作。
举个例子 11 = 1(mod 20)求11的逆元
20 = 1 × 11 + 9 //注释:此时x1 = 1, a = 11,p = 20,p1 = 9,执行p = a,a = p1
11 = 1 × 9 + 2 //注释:x2 = 1,a = 9,p2 = 2。
9 = 4 × 2 + 1 //注释:p3 = 1
此时得到:1 = 9 - 2 × 4,开始往前推直到推出 1= xa + yp
从上述式子中可以得知 9 = 20-11
1 = 20 - 11 - 2 × 4
同时 2 = 11 -9
1 = 20 -11 -4 × (11-9)
已知 9 = 20 - 11
1 = 20 -11 -4 × (11-(20-11))
1 = 20 -11 -4 × (11-20+11)
合并同类项得
1 = 5 × 20 - 9 × 11
1 = y × 20 + x × 11
x为a的逆元 -9
-9对p取余为11
综上11模20的逆元为11
验证 11 × 11 = 121,121 mod 20 = 6 — 1
到此 计算结束
边栏推荐
- 每日练习------有10个数字要求分别用选择法从大到小输出
- 2021年12月电子学会图形化四级编程题解析含答案:棕熊大战
- 6000 字+,帮你搞懂互联网架构演变历程!
- 2022-08-03日报:汪林望 vs 刘铁岩:AI、机器学习在材料科学研究中能发挥哪些作用?
- Js array method is summarized
- 文件包含之伪协议的使用
- 8月份加密市场的三个关键预期 价格虽向北移动?预计仍将处于动荡之中
- 一通骚操作,我把SQL执行效率提高了10000000倍!
- 如何用二分法搜索、查找旋转数组中是否含有某个(目标)值? leetcode 81.搜索旋转排序数组
- MATLAB gcf figure save image with black background/transparent background
猜你喜欢
随机推荐
Three key expectations for the crypto market in August Price moves north?Still expected to be in turmoil
JS基础--判断
问题3:你提交的缺陷开发认为这不是BUG,怎么办?
Basic knowledge points in js - events
自定SvgIcon公用组件
【周报】2022年7月24日
上亿数据怎么玩深度分页?兼容MySQL + ES + MongoDB
liunx服务器遇到SYN_SENT洪水攻击
问题5:发现缺陷怎么办?缺陷的类型有哪些?
devops-3:Jenkins增加静态节点
技术分享 | 接口自动化测试如何搞定 json 响应断言?
Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
方舟开服工具、服务器教程win
2021年12月电子学会图形化一级编程题解析含答案:下雨
高压直流输电(HVDC)的最优潮流(OPF)(Matlab代码实现)
6000 字+,帮你搞懂互联网架构演变历程!
身为程序员的我们如何卷死别人?破局重生。
[Code Hoof Set Novice Village 600 Questions] Define a function as a macro
How to play deep paging with hundreds of millions of data?Compatible with MySQL + ES + MongoDB
2021年12月电子学会图形化四级编程题解析含答案:新冠疫苗接种系统









