C# ModInverse 函数

标签 c# c#-4.0 modulo

是否有内置函数可以让我计算 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/

相关文章:

c# - 传递一个 Action 作为引用

c# - C# 中的斐波那契、二进制或二项式堆?

css - 以浏览器为条件的网络优化

java - 将长整型标识符均匀分布到桶中

c# - 业务逻辑层设计

c# - WPF:控件失去其绑定(bind)

C#:如何用\替换\\

c# - 使用 C# 从 excel 写入文本文件

go - 为什么我的滚动 adler32 校验和在 go 中不起作用? (模算术)

java - 第一个数小于第二个数时的模数除法