日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/4/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Extended Euclidean algorithm(扩展欧几里得算法Matlab实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、解析
  • 二、思路
    • 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)=Q1Ini_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实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。