【发布时间】:2011-11-01 15:10:57
【问题描述】:
我需要在 C# 中进行巨大的幂计算(想想 2 ^ 1,000,000),而 ulong 远远不够。在 .NET 中可能没有更大的实现,但是是否有一些 3rd 方的东西,甚至我可以做的东西会起作用?
【问题讨论】:
我需要在 C# 中进行巨大的幂计算(想想 2 ^ 1,000,000),而 ulong 远远不够。在 .NET 中可能没有更大的实现,但是是否有一些 3rd 方的东西,甚至我可以做的东西会起作用?
【问题讨论】:
如果您使用的是 .NET Framework 4.0,则可以使用BigInteger。只需添加对System.Numerics 程序集的引用即可。
如果您无法使用 .NET Framework 4.0,还有很多其他实现,例如 CodeProject 上的 this one。
【讨论】:
您可以使用 .Net 4.0 中的System.Numerics.BigInteger。
【讨论】:
您似乎正在寻找的术语是“任意精度算术”,在 2^1,000,000 的情况下,是任意精度整数。
.NET 4 中的 System.Numeric.BigIntegers 可能会正常工作。
如果您需要使用早期版本的 .NET 或任何其他语言,或者需要更多功能或性能,GMP library 是不常见数学的常用停止。 GMP 是用 C 编写的,并且可以通过几乎任何其他语言的包装器获得。
【讨论】: