+ -
当前位置:首页 → 问答吧 → 关于乘法逆元<litaoye>请进

关于乘法逆元<litaoye>请进

时间:2011-08-11

来源:互联网

这是C#程序,把x和q对应X,Y传进去,返回的结果在A和B里面(用C的话转为指针就可以了)

以6*m mod 17 = 1为例,x = 6,q = 17,求得的结果是:A = 3, B = -1,意思就是6*3 + 17*(-1) = 1

C# code

  static int EuclidExtend(int X, int Y, out int A, out int B) { if (Y == 0) { A = 1; B = 0; return X; } int quotient = X / Y; int gcd = EuclidExtend(Y, X - Y * quotient, out A, out B); int Temp = A; A = B; B = Temp - quotient * A; return gcd; }

如果是
x = 5,q = 3。求的的结果是A = -1,B = 2;
就错了,我跟到里面看,发现好像少了一次递归,不明为何,特来请教。

作者: Jokul_Lee   发布时间: 2011-08-11

x = 386,q = 709

A = -90
B = 49;

作者: Jokul_Lee   发布时间: 2011-08-11