math - 如何实现无n次方有理数的幂运算?

标签 math exponentiation zoho

它对我来说只有 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] 可以是 01 并且 pow(2, y) 是2 的整数幂(即 1241/21/41/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/

相关文章:

java - Zoho OAuth 2.0 多次刷新 token

reactjs - 如何让 MathJax 更快?

javascript - 如何使数组相加?

javascript - Kadane 的算法没有为最大的连续总和返回正确的值?

c++ - C++ 中高数的模幂运算

javascript - Zoho 与 NodeMailer 无法工作错误代码 : 'EDNS'

ruby-on-rails - 如何在 Rails 2 中保存上传的文件

java - 在不断计算更高值并将其存储在磁盘上的系统中,存储要求何时会超过 RAM?

scheme - 在数学上,为什么这个 SICP 算法对一个数的指数模另一个数起作用?

c++ - 通过平方进行模幂运算的溢出可能性