Math 无分数小数指数的求解算法
如果分数不能被使用,比如在无限精度计算中,有人能解释一下求解2^2.2这样的问题所涉及的步骤吗?pow(x,y)(即Math 无分数小数指数的求解算法,math,arbitrary-precision,Math,Arbitrary Precision,如果分数不能被使用,比如在无限精度计算中,有人能解释一下求解2^2.2这样的问题所涉及的步骤吗?pow(x,y)(即x^y)的典型实现涉及计算exp(y*log(x))。不涉及分数。在一般情况下a^b,其中^是指数运算(不是异或),a和b是实数: pow(a,b) = exp( b * log(a) ) exp(x) = sum[n = 0->inf] x^n / n! ln(x) = sum[n = 1->inf] (x-1)^n / n x^n = n
x^y
)的典型实现涉及计算exp(y*log(x))
。不涉及分数。在一般情况下a^b
,其中^
是指数运算(不是异或),a和b是实数:
pow(a,b) = exp( b * log(a) )
exp(x) = sum[n = 0->inf] x^n / n!
ln(x) = sum[n = 1->inf] (x-1)^n / n
x^n = n == 0 ? 1 // unless x == 0
(n%2==0) ? x^(n/2) * x^(n/2)
othewrwise x*x^(n-1)
// faster than loop for large n,
这需要两个系列,您需要以一定的精度终止,但幂运算仅适用于自然数
你还必须处理a和b的符号(
a^-b=1/(a^b)
)、零值等问题。在本文中,“分数”是什么意思?计算任意幂的一种典型方法是通过对数域。@OliCharlesworth我的意思是,不必将小数转换为分数来求解,我所看到的所有关于小数指数的示例都会涉及将小数指数转换为分数。例如,如果你在没有计算器的情况下在一张纸上做2^2.2,那么你将如何计算2^(1/5)?