利用(Extended_Euclid)扩展欧几里算法求逆元

本文介绍了一种使用扩展欧几里得算法求解逆元的方法,并提供了具体的MATLAB实现代码。该算法能够找到两个非负整数a和b之间的逆元及它们的最大公约数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

扩展欧几里得求逆元

function [ R0 , S0 , T0 ] = Extended_Euclid( a , b )
%作者:192152王旭
%功能:利用Extended_Euclid算法求逆元
%输入要求:两个非负整数 a , b,且 a >= b
%输入为 a=1859  b=1573
%输出为 [ R0 , S0 , T0 ] = [ 143 -5 6]
% R 是逆元 , s*a + t*b = gcd(a,b)
%--------------------------------------------------------------------------
%测试需要     
%输入为 a=1859  b=1573
%[ R0 , S0 , T0 ] = Extended_Euclid( a , b )
%输出为 [ R , S , T ] = [ 143 -5 6]   
%--------------------------------------------------------------------------
%R0=1859;
%R1=1573;
S0=1;
S1=0;
T0=0;
T1=1;

R0=a
R1=b
while R1
  q = floor( R0 / R1 );  
%  [ tmp1 , tmp2 , tmp3 ] = [ R0 - q * R1 , S0 - q * S1 , T0 - q * T1 ]
  tmp1  =  R0 - q * R1 ;
  tmp2  =  S0 - q * S1 ;
  tmp3  =  T0 - q * T1 ;
  R0 = R1
  S0 = S1
  T0 = T1
  R1 = tmp1
  S1 = tmp2 
  T1 = tmp3
end

end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值