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 |
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