以最佳方式计算x到x的功率

lea*_*ner 3 c c++ java algorithm logic

可能重复:
实现基于整数的幂函数pow(int,int)的最有效方法

我知道这个问题很简单,但我的要求是我要计算x来驱动x,其中x是一个非常大的数字,以尽可能最佳的方式.我不是一个数学极客,因此需要一些帮助来找出最好的方法.

在java中,我们可以使用BigInteger但是如何优化代码?任何具体的优化方法?

另外使用递归会得到x的大值,会使代码变慢并且容易出现堆栈溢出错误吗?

例如:457474575加权457474575

Mar*_*som 12

您确实意识到,即使对于BigInteger,您的示例的答案也将是一个非常大的数字?它将有3961897696位数字!

如果你不需要精确的精确度,使用非常大的数字的最佳方法是使用它们的对数.要将x取为x幂,请取x的对数并乘以x.如果你需要将它转换回来,请将e带到x exp(x),除非在这种情况下它几乎肯定会溢出.