Klasse ComplexNumber

Sie sollen eine Klasse ComplexNumber erstellen, die das Verhalten einer komplexen Zahl kapselt. Eine komplexe Zahl ist eine Zahl, die in der Form a + bi ausgedrückt werden kann, wobei a und b reelle Zahlen sind und i eine Lösung der Gleichung x^2 = -1 ist. Da keine reelle Zahl diese Gleichung erfüllt, wird i als imaginäre Einheit (√-1) bezeichnet.
Ihre Klasse ComplexNumber sollte die folgenden Attribute haben:
  • real: Den Realteil der komplexen Zahl (a)
  • imaginary: Den Imaginärteil der komplexen Zahl (b)
Sie müssen diese magischen Methoden implementieren:
  • __add__: Diese Methode soll zwei komplexe Zahlen addieren und ein neues ComplexNumber-Objekt zurückgeben, das das Ergebnis darstellt: (a₁ + a₂) + (b₁ + b₂)i.
  • __sub__: Diese Methode soll eine komplexe Zahl von einer anderen subtrahieren und ein neues ComplexNumber-Objekt zurückgeben, das das Ergebnis darstellt: (a₁ - a₂) + (b₁ - b₂)i.
  • __mul__: Diese Methode soll zwei komplexe Zahlen multiplizieren und ein neues ComplexNumber-Objekt zurückgeben, das das Ergebnis darstellt: (a₁·a₂ - b₁·b₂) + (a₁·b₂ + b₁·a₂)i.
  • __truediv__: Diese Methode soll eine komplexe Zahl durch eine andere dividieren und ein neues ComplexNumber-Objekt zurückgeben, das das Ergebnis darstellt: [(a₁·a₂ + b₁·b₂) / (a₂² + b₂²)] + [(b₁·a₂ - a₁·b₂) / (a₂² + b₂²)]i.
Neben den numerischen magischen Methoden sollten Sie auch eine magische Methode __str__ implementieren, die die komplexe Zahl als <real> + <imaginary> i zurückgibt.
Eingabe
Ausgabe
print(ComplexNumber(1, 1) + ComplexNumber(2, 2)); print(ComplexNumber(2, 3) - ComplexNumber(1, 1)); print(ComplexNumber(2, 3) * ComplexNumber(1, 1)); print(ComplexNumber(2, 2) / ComplexNumber(1, 1)); print(ComplexNumber(1, 1) - ComplexNumber(2, 3))
3 + 3 i 1 + 2 i -1 + 5 i 2.0 + 0.0 i -1 + -2 i
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue