【发布时间】:2011-09-11 18:33:41
【问题描述】:
可能重复:
The most efficient way to implement an integer based power function pow(int, int)
我知道这个问题很简单,但我的要求是我想以可能的最佳优化方式计算 x 到 x 的幂,其中 x 是一个非常大的数字。我不是数学极客,因此需要一些帮助来找出可能的最佳方法。
在java中,我们可以使用BigInteger,但是如何优化代码呢?有什么具体的优化方法吗?
同样使用递归会不会x的值很大,导致代码变慢,容易出现栈溢出错误?
例如:457474575 提升到权力 457474575
【问题讨论】:
-
@learner,最好的? ...认真的吗?
-
您可以计算出 2 的所有幂到 x 并乘以所有加起来为 x 的 2 的幂。即使你使用递归,你也不会得到超过 log2(log2(x)) 级别的递归。
-
你打算如何表示答案?你给出的计算将有数十亿位数。你都需要吗?
-
@learner,字符串中不能包含 3,961,897,695 个数字。
-
x 总是一个整数,还是也可以是一个浮点数?您需要完全精确的答案,还是只需要数量级?
标签: java c++ c algorithm logic