我正在编写一个用于任意精度算术的库。我面临的最后一个问题是幂函数。我想出计算 2 ^ (y log2(x))
而不是 x ^ y
还有一个子问题:我怎样才能有效地计算 2 ^ x
与 x
在 (0,1)
范围内(零和一个除外)。
既然我显然存储有理数,x
具有 p/q
的形式(p < q
)。因此我可以计算出 q
-2
的根(维基百科的 n 次根算法 https://en.wikipedia.org/wiki/Nth_root_algorithm )然后用 p
对结果取幂.
但是,这看起来效率很低。有没有更高级的算法?感谢您的帮助。
最佳答案
因为 2 ^ x = e ^ (x ln 2)
和 e ^ x = 1 + x + x^2/2! + x^3/3! + ...
这可能是一个可行的方法。 e ^ x
的级数展开很快收敛到有限的 x(如您的情况)。
关于algorithm - 2^x 的数值近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40508387/