0

無限精度の計算などで分数を使用できない場合、2^2.2 のようなものを解くための手順を誰か説明してもらえますか?

4

2 に答える 2

2

a^bがべき乗 (XORで^はない) で、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, 

これには、特定の精度で終了する必要がある 2 つのシリーズが必要ですが、べき乗は自然数のみです。

また、a と b の符号 ( a^-b = 1/(a^b))、ゼロ値なども処理する必要があります。

于 2012-03-26T00:09:08.073 に答える
0

pow(x,y)(つまり)の典型的な実装には、 のx^y計算が含まれexp(y*log(x))ます。分数は含まれません。

于 2012-03-26T00:00:10.570 に答える