首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >快速求幂实现

快速求幂实现
EN

Stack Overflow用户
提问于 2009-10-27 22:49:37
回答 3查看 3.6K关注 0票数 3

谁能指出一个网站,在那里我可以找到一个算法,有效地计算整数幂的幂使用C#?

例如:我想计算2^60000或3^12345

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-27 22:56:29

除非这是家庭作业,否则您可能不想使用自己的任意精度求幂实现。计算你所描述的这种类型的大指数是很复杂的-除了性能。

我推荐使用其中一个existing arbitrary precision arithmetic libraries, like GMP --它们中的大多数都有从C#访问它们的库。

F#支持使用BigInt类进行任意精度的算术运算(如果导入它所在的程序集,也可以从C#访问该类)。然而,我不知道BigInt求幂是如何优化的。

如果您只是想了解高效的求幂算法,那么您可能需要研究Square-And-Multiply求幂算法。

票数 13
EN

Stack Overflow用户

发布于 2009-10-27 23:04:36

整数求幂可以使用一种称为“平方求幂”link的方法有效地计算出来。

该方法还可用于计算非对称加密算法中使用的模幂link

票数 2
EN

Stack Overflow用户

发布于 2009-10-27 22:57:32

看看这个:用于处理大整数的IntX。您可能需要编写自己的power实现,但既然支持乘法,这应该不是那么困难。

由280Z28编辑:另一个包括快速Pow、ModPow和素性测试的实现是这个BigInteger实现(代码项目),我过去曾在Project Euler问题上使用过它--尽管我现在使用.NET 4.0并使用它的System.Numerics.BigInteger实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1631341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档