扩展欧几里得求逆元
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