文章目录

  • 一、解析
  • 二、思路
    • 1、Ini_XY迭代初值
    • 2、Ini_XY迭代矩阵
    • 3、流程
  • 三、效果如下
  • 四、代码
    • 1、Mian.m
    • 2、GCD.m

一、解析

Main.m
矩阵A为一个n·2的矩阵,每一行存储一对待求解的数据
Ini_XY数组为x,y的初始迭代值
GCD.m
形参:待求解数据矩阵,x,y的初始迭代值
返回值:x,y的迭代值,除数矩阵

二、思路

1、Ini_XY迭代初值

2、Ini_XY迭代矩阵

3、流程

由辗转相除法获取{q1,q2,…,qn}
Qi=[0 1;1 -qi]
若两数互质
则有Ini_XY(n+1)迭代初值=[1 0]
迭代如下:
Ini_XY(n)=Qn*Ini_XY(n+1)
Ini_XY(n-1)=Q(n-1)Ini_XY(n)

Ini_XY(1)=Q1
Ini_XY(2)

三、效果如下

四、代码

1、Mian.m

A=[42 30;1759 550;334 111];
Ini_XY=[1 0];
for i=1:3disp("========================================");disp("第"+i+"次输入:");[X_Y,gcd]=GCD(A(i,:),Ini_XY);disp("GCD("+A(i,1)+","+A(i,2)+")="+gcd(2));if(gcd(2)==1)disp(A(i,1)+","+A(i,2)+"互质");disp("于是有");disp("GCD("+A(i,1)+","+A(i,2)+")="+A(i,1)+"*x+"+A(i,2)+"*y");disp("解得:");disp("GCD("+A(i,1)+","+A(i,2)+")="+A(i,1)+"*"+X_Y(1)+"+"+A(i,2)+"*"+X_Y(2));disp("x="+X_Y(1)+","+"y="+X_Y(2));end
end

2、GCD.m

function [X_Y,gcd] = GCD(A,Initial_XY)
%gcd(a,b)=a*x+b*y
%X_Y=[x y]
%gcd:存储除数的数组
a=A(1);
b=A(2);
gcd=[b];
Q_Array=[];
while(b)c=mod(a,b);Q_Array=[(a-c)/b Q_Array];a=b;b=c;gcd=[b gcd];
end
%x,y迭代初值
X_Y=Initial_XY';
for i=Q_ArrayQ=[0 1;1 -1*i];X_Y=Q*X_Y;
end
X_Y=X_Y';
end

Extended Euclidean algorithm(扩展欧几里得算法Matlab实现)相关推荐

  1. Python:实现extended euclidean algorithm扩展欧几里得算法(附完整源码)

    Python:实现extended euclidean algorithm扩展欧几里得算法 from __future__ import annotationsimport sysdef extend ...

  2. 『扩展欧几里得算法 Extended Euclid』

    Euclid算法(gcd) 在学习扩展欧几里得算法之前,当然要复习一下欧几里得算法啦. 众所周知,欧几里得算法又称gcd算法,辗转相除法,可以在\(O(log_2b)\)时间内求解\((a,b)\)( ...

  3. 扩展欧几里得算法与模乘逆元的程序

    代码来自维基百科的Extended Euclidean algorithm. 扩展欧几里得算法程序: function extended_gcd(a, b)s := 0; old_s := 1t := ...

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

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

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

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

  6. 密码学基础算法(一)基于整数的欧几里得算法和扩展欧几里得算法

    图片来源: 随便谷歌的一个图片 图片地址: https://jason-chen-1992.weebly.com/uploads/1/0/8/5/108557741/euclidean_3_orig. ...

  7. POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)

    POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法) 手动博客搬家: 本文发表于20180226 23:35:26, 原地址https://blog.csdn ...

  8. 2018/7/31 -zznu-oj -问题 C: 磨刀- 【扩展欧几里得算法的基本应用】

    问题 C: 磨刀 时间限制: 1 Sec  内存限制: 128 MB 提交: 190  解决: 39 [提交] [状态] [讨论版] [命题人:admin] 题目描述 磨刀是一个讲究的工作,只能在n℃ ...

  9. 扩展欧几里得算法 POJ 1061

    根据此题 整理下 扩展欧几里得 扩展欧几里得是用来判断并求 ax + by = c 是否有解及其解的数学算法 首先列出定理 1.ax + by = gcd(a,b) 2.gcd(a,b) = gcd( ...

最新文章

  1. #HTTP协议学习# (七)代理
  2. 与C#中的typedef等效
  3. 【NOI2015】软件包管理器
  4. python嵌套循环跳出_如何跳出嵌套的while循环
  5. cocos2d-x游戏实例(19)-纵版射击游戏(6)
  6. c语言运行时更入下一行,C语言高级语言程序设计(一)_第二章 C程序设计基础(二).ppt...
  7. C#调用Matlab生成的dll方法
  8. go tour - Go 入门实验教程
  9. 7月20日专家在线访谈“员工上网管理是否可行”
  10. bootice.exe linux 启动盘,下载BOOTICE来把你的U盘做成启动盘
  11. 答题卡php,答题卡答题注意事项 - 窗外事 - 简单学习网论坛_中高考学习交流论坛_中学生学习论坛 - Powered by phpwind...
  12. 排列组合算法的javascript实现
  13. SNF快速开发平台MVC-Grid++集成打印
  14. 基于matlab的系统校正,基于MATLAB的控制系统校正_毕业论文
  15. Hikari连接池——java.lang.Exception: Apparent connection leak detected
  16. Si基相控阵技术的相关进展1
  17. python登录斗鱼_python3 selenium模拟登陆斗鱼提取数据保存数据库
  18. 联想电脑开机锁屏壁纸地址
  19. 机器学习DGA域名检测
  20. char、char*、char**数组

热门文章

  1. SQL语句操作大全(本文系转载)
  2. [Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理
  3. 【数据结构与算法】之深入解析“冗余连接”的求解思路与算法示例
  4. iOS逆向之hook框架frida的安装和使用
  5. 盖茨发文谈如何实现零碳目标 称看好电动车未来
  6. 124. Binary Tree Maximum Path Sum 二叉树中的最大路径和
  7. 树莓派AI视觉云台——6、Linux常用命令及vim编辑器的使用
  8. 2017年第八届蓝桥杯 —— 训练题目 —— 空瓶换汽水
  9. 2014\Province_C_C++_A\2 切面条
  10. python人工智能——深度学习——TensorFlow基本介绍