是否有内置函数可以让我计算 a(mod n) 的模逆? 例如19^-1 = 11 (mod 30),在本例中为 19^-1 == -11==19;
最佳答案
由于 .Net 4.0+ 使用特殊的模块化算术函数 ModPow(产生“X
power Y
modulo Z
”)实现 BigInteger,您不需要第三方库来模拟 ModInverse。如果 n
是素数,您需要做的就是计算:
a_inverse = BigInteger.ModPow(a, n - 2, n)
有关更多详细信息,请查看维基百科:Modular multiplicative inverse , 第 Using Euler's theorem ,特殊情况“当 m 是素数时”。顺便说一句,最近有一个关于此的 SO 主题:1/BigInteger in c# , 用同样的方法 suggested by CodesInChaos .
关于C# ModInverse 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7483706/