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 neuesComplexNumber
-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 neuesComplexNumber
-Objekt zurückgeben, das das Ergebnis darstellt:(a₁ - a₂) + (b₁ - b₂)i
.__mul__
: Diese Methode soll zwei komplexe Zahlen multiplizieren und ein neuesComplexNumber
-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 neuesComplexNumber
-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 |
---|---|
| 3 + 3 i |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB