当前位置:网站首页>扩展欧几里得求逆元实例
扩展欧几里得求逆元实例
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
到此 计算结束
边栏推荐
- 深度学习——安装CUDA以及CUDNN实现tensorflow的GPU运行
- How to use binary search and find whether the rotation in the array contains a (target) value?Rotate the sorted array leetcode 81. Search
- 【周报】2022年7月31日
- JS手写call apply bind (详细)(面试)
- rust编程基础
- 语音识别新一轮竞争打响,自然对话会是下一个制高点吗?
- How to play deep paging with hundreds of millions of data?Compatible with MySQL + ES + MongoDB
- leetcode:899. 有序队列【思维题】
- devops-2:Jenkins的使用及Pipeline语法讲解
- 2021年12月电子学会图形化四级编程题解析含答案:新冠疫苗接种系统
猜你喜欢

语音识别新一轮竞争打响,自然对话会是下一个制高点吗?

简介undo log、truncate、以及undo log如何帮你回滚事物?

一次做数据报表的踩坑经历,让我领略了数据同步增量和全量的区别

问题7:功能测试花瓶用例

2021年12月电子学会图形化四级编程题解析含答案:新冠疫苗接种系统

cnpm 安装成功后提示不是内部和外部命令,也不是可运行的命令解决方案

MySQL中的基数是啥?

With a single operation, I improved the SQL execution efficiency by 10,000,000 times!

跨桌面端之组件化实践

Neural networks, cool?
随机推荐
Three key expectations for the crypto market in August Price moves north?Still expected to be in turmoil
6000 字+,帮你搞懂互联网架构演变历程!
语音识别新一轮竞争打响,自然对话会是下一个制高点吗?
How to play deep paging with hundreds of millions of data?Compatible with MySQL + ES + MongoDB
NFT盲盒挖矿DAO智能合约dapp系统开发详情
一通骚操作,我把SQL执行效率提高了10000000倍!
实习路途:记录给我的第一个实习项目中的困惑
方舟开服工具、服务器教程win
如何用二分法搜索、查找旋转数组中是否含有某个(目标)值? leetcode 81.搜索旋转排序数组
0 code 4 steps to experience IoT devices on the cloud
方舟生存进化开服需要多少钱
MySQL性能优化的'4工具+10技巧'
王守创:多组学整合分析揭示植物代谢多样性的分子机制(8月2号晚)
问题8:对朋友圈进行用例设计
问题5:发现缺陷怎么办?缺陷的类型有哪些?
新版本MaxCompute 的SQL支持 UDF 分区裁剪的逻辑是怎样的?
交大医学院临床研究中心如何将 ModelWhale 应用于临床医生教学、研究丨数据科学 x 临床医学
深度学习——安装CUDA以及CUDNN实现tensorflow的GPU运行
【网络结构】VGG
动态链接库.dll、.so和静态库.a,cmake指令