У меня постоянно возникают проблемы при попытке написать код для умножения двух комплексных чисел. Сначала я создал простой класс с именем 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
. Что происходит? Это как-то связано с частью self.imag
в функции умножения?
Я попытался сделать это вручную, прочитав мой код, и получил правильный ответ. Есть ли что-то очевидное, чего мне не хватает?