【发布时间】:2019-09-22 23:26:38
【问题描述】:
我想用 C# 计算大数的幂
我用过这段代码。 它有效,但我想在更短的时间内计算它。
BigInteger a;
a = Math.Pow(4100000000,4100000000);
Console.Writeline(a);
【问题讨论】:
-
可以分享一下当前时间吗?
-
你的指数是整数吗(没有小数点)?
-
我不记得确切但超过2小时。
-
是的,它是一个整数。
-
1.不是 C# 编码器,但您确定
Math.Pow(4100000000,4100000000)是在 BigIntegers 上计算的吗? 2. 你的运算结果是~130925204732位长。浮动的pow正在使用log,exp函数,我希望通过对如此大的数字进行平方,这比整数幂要慢得多。请参阅Power by squaring for negative exponents 无论如何你需要大量的大乘法,所以即使使用Schönhage-Strassen fsqr 也需要时间,所以 2hr 看起来很合理。
标签: c# math biginteger