PYTHON两个复数问题:

来源:百度知道 编辑:UC知道 时间:2024/07/08 11:54:49
>>> (1+1j)**2
2j
>>> (1+2j)/(1+1j)
(1.5+0.5j)
这是怎样算出来的?

因为python内置的标准数值类型包括复数,而且像加减乘除乘方这些运算符都支持复数,所以就这么算出来了阿

你可以看看这个

http://docs.python.org/library/stdtypes.html#typesnumeric

1、规定复数的乘法按照以下的法则进行:
设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.
其实就是把两个复数相乘,类似两个多项式相乘,在所得的结果中把i2换成-1,并且把实部与虚部分别合并.两个复数的积仍然是一个复数.

所以 (1+1j)**2 = (1+1j)(1+1j) = 1 + 1j + 1j + j*j
j*j 换成-1 结果就是 2j了

2、(1+2j)/(1+1j)
(1+2j)/(1+1j)
= ((1+2j)(1+1j))/((1+1j)(1+1j)) 分子分母同乘以 1+1j
= (1 + 3j + 2*j*j) / 2j j*j换成-1
= ( 3j - 1 )/ 2j
= 3j/2j - 1/2j
= 1.5 + (-1*j)/2j*j
= 1.5 + (-j/-2)
= 1.5 + j/2
= 1.5 + 0.5j

其实就是数学。。。