C# 快速求幂实现

C# 快速求幂实现,c#,performance,algorithm,exponentiation,C#,Performance,Algorithm,Exponentiation,有人能指出一个网站,在那里我可以找到一种算法,用C#高效地计算整数的幂运算吗 我想计算2^60000或3^12345,除非这是家庭作业,否则你可能不想自己实现任意精度的幂运算。计算您描述的类型的大指数是复杂的——性能除外 我建议您使用其中一种,其中大多数都有从C#访问它们的库 F#支持使用BigInt类进行任意精度的算术运算(如果导入它所在的程序集,也可以从C#访问该类)。然而,我不知道BigInt求幂有多优化 如果你只是想学习高效的求幂算法,你可能想研究一下求幂算法。看看这个:用于处理大整数。

有人能指出一个网站,在那里我可以找到一种算法,用C#高效地计算整数的幂运算吗


我想计算2^60000或3^12345,除非这是家庭作业,否则你可能不想自己实现任意精度的幂运算。计算您描述的类型的大指数是复杂的——性能除外

我建议您使用其中一种,其中大多数都有从C#访问它们的库

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

如果你只是想学习高效的求幂算法,你可能想研究一下求幂算法。

看看这个:用于处理大整数。您可能需要编写自己的power实现,但由于支持乘法,这应该不会太难


Editby280Z28:另一个包括fast Pow、ModPow和素性测试的实现是这个实现(Code Project),我过去在Project Euler问题上使用过这个实现——尽管我现在使用.NET 4.0并使用它的实现。

可以使用一种称为“平方求幂”


此方法也可用于计算模幂运算,这在某些非对称加密方法(如RSA)中使用。

如果计算结果非常重要,我建议使用比IntX更成熟的库。为任意精度编写正确的库比看起来更困难,而且许多较小的项目还没有机会检测和解决困扰大多数实现的问题类型。