表格法轻松理解扩展欧几里得算法以及利用其求乘法逆元
文章目录
- 扩展欧几里得算法
- 求乘法逆元
扩展欧几里得算法
具体算法的原理参见扩展欧几里得算法求乘法逆元,本文仅以表格的形式展现计算过程,浅显易懂。下面通过例子进行说明。
例:求1234和4321的最大公约数,并将其表示为整系数的线性组合。
解: 根据定理内容列出以下表格,其中i为计算次数,ri 为原数及余数 ,qi 为商,xi yi 为新加的数,表格内数字的来历将在下面说明。
i | ri | qi | xi | yi |
---|---|---|---|---|
-1 | 4321 | 1 | 0 | |
0 | 1234 | 0 | 1 | |
1 | 619 | 3 | 1 | -3 |
2 | 615 | 1 | -1 | 4 |
3 | 4 | 1 | 2 | -7 |
4 | 3 | 153 | -307 | 1075 |
5 | 1 | 1 | 309 | -1082 |
6 | 0 | 3 |
由表格可知,gcd(1234,4321)=1,且整系数线性组合为4321×309+1234×(-1082)=1
以下对表格数字来历进行说明:
i的前两个数固定为 -1 和 0,xi 以及 yi 的前两个数分别固定为1、0和0、1,ri 的前两个数字为已知两数按大小排列,其余各数的计算过程以前三行数字为例:
紫色的619和粉色的3分别是橙色的4321与1234相除的余数和商,i==1行蓝色的1是由(红色的1)-(粉色的0粉色的3)得出来的,即1=1 - 3 * 0,同理i==1行蓝色的-3=(黄色的0)-(粉色的3粉色的1)得出来的,即-3=0 - 3 * 1,下面几行数字同理,以下一行为例,615和1分别为1234除以619的余数和商,-1=0 - 1 * 1,4=1 - 1 * -3,直到算到ri为0为止(本步不计入),此时的xi与yi即为所求系数,即4321×309+1234×(-1082)=1,ri为最大公约数,即gcd(1234,4321)=1
求乘法逆元
通过上述扩展欧几里得算法,可以得到1234mod4321的乘法逆元为最后一步的yi,即 -1082,将负数调整为正数即 -1028+4321=3239,故1234*3239≡1(mod 4321),同理,4321mod1234的乘法逆元为最后一步的xi,即4321*309≡1(mod 1234)
表格法轻松理解扩展欧几里得算法以及利用其求乘法逆元相关推荐
- POJ 2142: 扩展欧几里得算法
POJ 2142: The Balance Description Data 思路 扩展欧几里得算法 线性组合 Code --扩展欧几里得算法 原题传送门 Description Ms. Iyo Ki ...
- 欧几里得与扩展欧几里得算法(含推导过程及代码)
文章目录 前言 一.欧几里得算法 二.扩展欧几里得算法 2.1.认识裴蜀定理 2.2.推导ax+by=gcd(a, b)得到x与y 2.2.1.推导过程 2.2.2.代码实现 2.3.推导ax+by= ...
- 扩展欧几里得算法、乘法逆元与中国剩余定理
文章目录 前言 定义.定理和部分证明 整除 定义 定理 定理的证明 同余 定义 同余的性质 同余的运算律 运算律的证明 扩展欧几里得算法 代码模板 算法详解 乘法逆元 求解逆元 乘法逆元的作用 中国剩 ...
- 如何利用扩展欧几里得算法求解不定方程_客户端不用的算法系列:从头条笔试题认识扩展欧几里得算法...
难度较高,阅读时间大概 28 分钟 这是数论的第二篇,在<素数筛法>中,我们重温了素数这个数学定义,并且给出了区别于教科书上更高效的 Eratosthenes 筛法和欧拉线性筛.这篇文会从 ...
- 欧几里得算法和扩展欧几里得算法(Euclidean_Algorithm and Extended_Euclidean_Algorithm)
一.基本概念 欧几里得算法:又名辗转相除法,计算两个整数a,b的最大公约数. 扩展欧几里得算法:对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ...
- C++ 二元一次不定方程巧妙求解——运用扩展欧几里得算法
前言 在关于数论的学习中,求解二元一次不定方程是很重要的,在学习求解二元一次不定方程之前,要先了解欧几里得算法和扩展欧几里得算法. 关于数论的学习 欧几里得算法 欧几里得算法就是辗转相除法,欧几里得算 ...
- 欧几里得扩展欧几里得算法及相关的数学证明
//欧几里得算法求最大公约数 int gcd(int m,int n) {int u0=m,u1=n,t;if( u0<u1 )// 保证u0>=u1u0^=u1,u1^=u0,u0^=u ...
- 扩展欧几里得算法(求逆元)
扩展欧几里得算法(求逆元)总结 1.在RSA算法生成私钥的过程中涉及到了扩展欧几里得算法(简称exgcd),用来求解模的逆元. 2.首先引入逆元的概念: 逆元是模运算中的一个概念,我们通常说 A 是 ...
- 欧几里得与扩展欧几里得算法
原博客:https://www.cnblogs.com/haveyoueverbeen/p/4612753.html 关于扩展欧几里得算法(Extended Euclidean Algorithm), ...
最新文章
- C内存2:程序是如何运行的
- 图灵——2015技术类新书TOP20
- 周志华眼中的贝叶斯方法(转)
- 为什么docker比VM快?
- Linux 误删除 /boot分区 的解救办法
- php 动态修改文本内容_九大编程语言优缺点第八期:PHP
- 剑指offer二:替换空格
- 15. (附加)链表是否有环(C++版本)
- 通过Vite2.0创建前端项目(Vue3、Vue2、React)
- C#中 JSON 序列化 与 反序列化
- HTML lt input gt 标签,科技常识:使用amp;lt;labelamp;gt;标签修改input[type=checkbox]的样式...
- mysql卸载教程,只需三步
- Latex取消英语单词自动断行
- 中心极限与大数定理律的关系_CLT 中心极限定理
- js解析json字符串为json对象,js解析json的6种方法
- 【电力电子技术】CURRENT DOUBLER 倍流整流电路
- 有关urlrewrite
- 解决 Psycopg2 install失败(针对MAC)
- python灰色波浪线_去除pycharm的波浪线
- CmsTop 大众版运行环境搭建 (CentOS+Nginx+PHP FastCGI)