文章目录

  • 扩展欧几里得算法
  • 求乘法逆元

扩展欧几里得算法

具体算法的原理参见扩展欧几里得算法求乘法逆元,本文仅以表格的形式展现计算过程,浅显易懂。下面通过例子进行说明。

例:求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的前两个数固定为 -10xi 以及 yi 的前两个数分别固定为1001ri 的前两个数字为已知两数按大小排列,其余各数的计算过程以前三行数字为例:
紫色的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)

表格法轻松理解扩展欧几里得算法以及利用其求乘法逆元相关推荐

  1. POJ 2142: 扩展欧几里得算法

    POJ 2142: The Balance Description Data 思路 扩展欧几里得算法 线性组合 Code --扩展欧几里得算法 原题传送门 Description Ms. Iyo Ki ...

  2. 欧几里得与扩展欧几里得算法(含推导过程及代码)

    文章目录 前言 一.欧几里得算法 二.扩展欧几里得算法 2.1.认识裴蜀定理 2.2.推导ax+by=gcd(a, b)得到x与y 2.2.1.推导过程 2.2.2.代码实现 2.3.推导ax+by= ...

  3. 扩展欧几里得算法、乘法逆元与中国剩余定理

    文章目录 前言 定义.定理和部分证明 整除 定义 定理 定理的证明 同余 定义 同余的性质 同余的运算律 运算律的证明 扩展欧几里得算法 代码模板 算法详解 乘法逆元 求解逆元 乘法逆元的作用 中国剩 ...

  4. 如何利用扩展欧几里得算法求解不定方程_客户端不用的算法系列:从头条笔试题认识扩展欧几里得算法...

    难度较高,阅读时间大概 28 分钟 这是数论的第二篇,在<素数筛法>中,我们重温了素数这个数学定义,并且给出了区别于教科书上更高效的 Eratosthenes 筛法和欧拉线性筛.这篇文会从 ...

  5. 欧几里得算法和扩展欧几里得算法(Euclidean_Algorithm and Extended_Euclidean_Algorithm)

    一.基本概念 欧几里得算法:又名辗转相除法,计算两个整数a,b的最大公约数. 扩展欧几里得算法:对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ...

  6. C++ 二元一次不定方程巧妙求解——运用扩展欧几里得算法

    前言 在关于数论的学习中,求解二元一次不定方程是很重要的,在学习求解二元一次不定方程之前,要先了解欧几里得算法和扩展欧几里得算法. 关于数论的学习 欧几里得算法 欧几里得算法就是辗转相除法,欧几里得算 ...

  7. 欧几里得扩展欧几里得算法及相关的数学证明

    //欧几里得算法求最大公约数 int gcd(int m,int n) {int u0=m,u1=n,t;if( u0<u1 )// 保证u0>=u1u0^=u1,u1^=u0,u0^=u ...

  8. 扩展欧几里得算法(求逆元)

    扩展欧几里得算法(求逆元)总结 1.在RSA算法生成私钥的过程中涉及到了扩展欧几里得算法(简称exgcd),用来求解模的逆元. 2.首先引入逆元的概念: 逆元是模运算中的一个概念,我们通常说 A 是 ...

  9. 欧几里得与扩展欧几里得算法

    原博客:https://www.cnblogs.com/haveyoueverbeen/p/4612753.html 关于扩展欧几里得算法(Extended Euclidean Algorithm), ...

最新文章

  1. C内存2:程序是如何运行的
  2. 图灵——2015技术类新书TOP20
  3. 周志华眼中的贝叶斯方法(转)
  4. 为什么docker比VM快?
  5. Linux 误删除 /boot分区 的解救办法
  6. php 动态修改文本内容_九大编程语言优缺点第八期:PHP
  7. 剑指offer二:替换空格
  8. 15. (附加)链表是否有环(C++版本)
  9. 通过Vite2.0创建前端项目(Vue3、Vue2、React)
  10. C#中 JSON 序列化 与 反序列化
  11. HTML lt input gt 标签,科技常识:使用amp;lt;labelamp;gt;标签修改input[type=checkbox]的样式...
  12. mysql卸载教程,只需三步
  13. Latex取消英语单词自动断行
  14. 中心极限与大数定理律的关系_CLT 中心极限定理
  15. js解析json字符串为json对象,js解析json的6种方法
  16. 【电力电子技术】CURRENT DOUBLER 倍流整流电路
  17. 有关urlrewrite
  18. 解决 Psycopg2 install失败(针对MAC)
  19. python灰色波浪线_去除pycharm的波浪线
  20. CmsTop 大众版运行环境搭建 (CentOS+Nginx+PHP FastCGI)

热门文章

  1. 【目标跟踪】|SiamFC
  2. 怎么修改QQ空间发说说显示的机型
  3. 【U8+】用友U8+删除发货签回单提示发货单已签回完成或以损失处理
  4. 应用密码学第一章绪论笔记
  5. namp命令行操作及kali配置
  6. 有趣好玩的带音乐24H全自动在线要饭系统源码
  7. Sybase数据库常用时间操作
  8. 基于STM32的智能数据采集系统
  9. 先吞噬后反刍,擒贼擒王--java之我注六经之二
  10. 微信公众号添加聊天机器人