谁能指出一个网站,在那里我可以找到一个算法,有效地计算整数幂的幂使用C#?
例如:我想计算2^60000或3^12345
发布于 2009-10-27 22:56:29
除非这是家庭作业,否则您可能不想使用自己的任意精度求幂实现。计算你所描述的这种类型的大指数是很复杂的-除了性能。
我推荐使用其中一个existing arbitrary precision arithmetic libraries, like GMP --它们中的大多数都有从C#访问它们的库。
F#支持使用BigInt类进行任意精度的算术运算(如果导入它所在的程序集,也可以从C#访问该类)。然而,我不知道BigInt求幂是如何优化的。
如果您只是想了解高效的求幂算法,那么您可能需要研究Square-And-Multiply求幂算法。
发布于 2009-10-27 23:04:36
整数求幂可以使用一种称为“平方求幂”link的方法有效地计算出来。
该方法还可用于计算非对称加密算法中使用的模幂link。
发布于 2009-10-27 22:57:32
看看这个:用于处理大整数的IntX。您可能需要编写自己的power实现,但既然支持乘法,这应该不是那么困难。
由280Z28编辑:另一个包括快速Pow、ModPow和素性测试的实现是这个BigInteger实现(代码项目),我过去曾在Project Euler问题上使用过它--尽管我现在使用.NET 4.0并使用它的System.Numerics.BigInteger实现。
https://stackoverflow.com/questions/1631341
复制相似问题