2016-05-17 95 views

回答

3

pow用於浮點參數可能是實現爲exp (y log x)(這,順便說一句,因爲特別logexp非常聰明,可以非常快速地評估對現代芯片組)。很明顯,這不適用於非積極的x,因此您的輸出。

該標準規定如果xy是浮點,pow僅定義爲正值xhttp://en.cppreference.com/w/cpp/numeric/math/pow是一個很好的參考。

+0

謝謝。我試圖exp(y ln x)但失敗了。因爲ln(-0.7)返回表示域錯誤。根據pow(-1,±∞)所寫的參考文獻。 ±∞表示任何數字?即使小數? – user1320165

+0

你知道-0.726354提高到0.954並沒有真正的解決方案嗎? (而不是一個複數的家庭)? – Bathsheba

+0

我解決了它參考上面的答案。謝謝。 – user1320165

5

具有非整數指數的負數的冪通常是複數。 pow函數返回一個double,它近似於一個實數。因此這是行不通的。

如果你只在絕對值興趣,你可以把它改寫爲:

X^Y =(-x)^ Y *(-1)^Ÿ

可以計算左因爲-x是正數,所以使用pow。右邊的項的絕對值爲1.

順便說一句,pow函數不會返回「無窮大」值,而是指示域錯誤的值。

+0

首先。感謝Corret對我。我會找到關於表示域錯誤。並且這個方程((-1)^ y)總是返回1嗎? – user1320165

+0

@ user1320165:(-1)^ y的值不是1,而是絕對值爲1的複數。在複平面中,這些是單位圓上的值。 –

+0

根據你的答案。 1是近似值。我明白。謝謝。 – user1320165