的平方根這裏是我的代碼:號蟒蛇
import cmath
root = (cmath.sqrt(25))
print (root)
raw_input()
我面臨的問題是根本的結果,5 + 0J這是不可取的,我只希望平方根。我怎樣才能解決這個問題?
的平方根這裏是我的代碼:號蟒蛇
import cmath
root = (cmath.sqrt(25))
print (root)
raw_input()
我面臨的問題是根本的結果,5 + 0J這是不可取的,我只希望平方根。我怎樣才能解決這個問題?
使用math
模塊代替cmath
模塊;後者僅用於複數:
>>> import math
>>> print math.sqrt(25)
5.0
對於它的價值,在cmath
結果是正確的,如果你預期複數。您可以僅使用結果的.real
組件,但由於在math
模塊中存在相同的常規浮點,所以您的計算機不需要額外的工作。
結果是正確的!
這是因爲您正在使用複雜的數學庫來查找平方根。
畢竟,
5+0j
處於25的複雜平方根:
(5+0j)*(5+0j) = 25 + 2*0j + (0j)^2 = 25 + 0 + 0 = 25
使用math
模塊而不是爲 「常規」 平方根。
或者:通過使用獲得的實部:
root.real
一般情況下,你可能需要使用複數,而不是自然數的普遍性和算術錯誤檢測 - 但這是另一個討論。
結果本身是正確的。 25 + 0j
的平方根是5 + 0j
。
j
從哪裏來?其隱含的,因爲你正在使用複雜的數學(cmath
)庫。
如果你只是想在複數的實部分,然後執行:
>>> root = (cmath.sqrt(25))
>>> root.real
5.0
最後,如果你想只處理實數,然後使用math
庫。
'cmath'很好,如果你想知道'sqrt(-25)':) – nneonneo 2013-03-10 13:19:40