它对我来说只有 log(base "e")、sin、tan 和 sqrt(仅平方根)函数和基本算术运算符 (+ - */mod)。我还有“e”常数。
我正在尝试使用 Deluge (zoho.com) 来解决这些限制的几个问题。我必须实现有理(分数)底数和指数的求幂。
最佳答案
假设您要计算pow(A, B)
考虑 B
在基数 2 中的表示:
B = b[n] * pow(2, n ) +
b[n-1] * pow(2, n - 1) +
...
b[2] * pow(2, 2 ) +
b[1] * pow(2, 1 ) +
b[0] * pow(2, 0 ) +
b[-1] * pow(2, -1 ) +
b[-2] * pow(2, -2 ) +
...
= sum(b[i] * pow(2, i))
其中 b[x]
可以是 0
或 1
并且 pow(2, y)
是2 的整数幂(即 1
、2
、4
、1/2
、1/4
、1/8
)。
那么,
pow(A, B) = pow(A, sum(b[i] * pow(2, i)) = mul(pow(A, b[i] * pow(2, i)))
因此,pow(A, B)
可以仅使用乘法和平方根运算来计算
关于math - 如何实现无n次方有理数的幂运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439797/