我正在编写一个用于任意精度算术的库。我面临的最后一个问题是电源功能。我想出了计算2 ^ (y log2(x))
而不是x ^ y
并且仍存在一个子问题:如何在2 ^ x
范围内({1}} x
有效地计算(0,1)
x
一个被排除在外)。
由于我显然存储理性,p/q
的格式为p < q
(q
)。因此,我可以计算2
p
的根{维基百科的第n个根算法https://en.wikipedia.org/wiki/Nth_root_algorithm),然后按{{1}}对结果进行取幂。
然而,这似乎效率很低。有没有优越的算法?谢谢你的帮助。
答案 0 :(得分:2)
从2 ^ x = e ^ (x ln 2)
和e ^ x = 1 + x + x^2/2! + x^3/3! + ...
这可能是一种方法。 e ^ x
的系列扩展会在有限的x(如您的情况下)中快速收敛。