gpt4 book ai didi

python - 写一个函数来乘以复数

转载 作者:行者123 更新时间:2023-12-05 07:10:09 26 4
gpt4 key购买 nike

在尝试编写将两个复数相乘的代码时,我总是遇到问题。我首先创建了一个名为 Complex 的简单类:

class Complex:
def __init__(self,real,imag):
self.real = real
self.imag = imag


def multiply(self, d):
self.real = (self.real * d.real) - (self.imag * d.imag)
self.imag = (self.imag * d.real) + (self.real * d.imag)

def __str__(self):
if self.imag > 0:
return str(self.real) + " + " + str(self.imag) + "i"
elif self.imag == 0:
return str(self.real)
else:
return str(self.real) + " - " + str(-self.imag) + "i"

其中 self.real 是实部,self.imag 是虚部。当我运行时

z = Complex(3,4)
x = Complex(2,3)
z.multiply(x)
print(z,x)

结果应该是 -6 + 17i,但它输出的是 -6 - 10i。发生了什么?是不是和multiply函数中的self.imag部分有关?

我尝试通过阅读我的代码来手工完成,我得到了正确的答案。有什么明显的东西是我遗漏的吗?

最佳答案

您在multiply 方法的第一行修改self.real,然后在第二行使用修改后的值。在一行中完成两项任务,即:

self.real, self.imag = (self.real * d.real) - (self.imag * d.imag), (self.imag * d.real) + (self.real * d.imag)

关于python - 写一个函数来乘以复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61356084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com