Python中的平方根计算
这是我的代码:
import cmath
root = (cmath.sqrt(25))
print (root)
raw_input()
我遇到的问题是,结果是5+0j,这个结果我不想要,我只想要平方根。请问我该怎么解决这个问题呢?
4 个回答
0
结果是正确的!
这是因为你使用了复杂数学库来计算平方根。
毕竟,
5+0j
这是25的复杂平方根:
(5+0j)*(5+0j) = 25 + 2*0j + (0j)^2 = 25 + 0 + 0 = 25
要计算“普通”的平方根,可以使用math
模块。
或者:可以通过以下方式访问实部:
root.real
一般来说,你可能想用复杂数而不是自然数,这样可以更通用,并且有助于发现数学错误——但这又是另一个话题。
3
结果本身是正确的。25 + 0j
的平方根是 5 + 0j
。
那么这个 j
是从哪里来的呢?这是因为你在使用复数数学库(cmath
),所以它是隐含的。
如果你只想要复数的 实数 部分,可以这样做:
>>> root = (cmath.sqrt(25))
>>> root.real
5.0
最后,如果你只想处理实数,那就使用 math
库。
6
使用 math
模块,而不是 cmath
模块;后者仅适用于复杂数字:
>>> import math
>>> print math.sqrt(25)
5.0
说实话,如果你期待的是一个复杂数字,那么 cmath
的结果是正确的。你可以只取结果中的 .real
部分,但因为在 math
模块中有一个普通的浮点数对应,所以让电脑多做这一步其实没必要。