Classe ComplexNumber
Ti viene chiesto di creare una classe
ComplexNumber
che incapsula il comportamento di un numero complesso. Un numero complesso è un numero che può essere espresso nella forma a + bi
, dove a
e b
sono numeri reali, e i
è una soluzione dell'equazione . Poiché nessun numero reale soddisfa questa equazione, i
è chiamato numero immaginario ().La tua classe
ComplexNumber
dovrebbe avere i seguenti attributi:real
: la parte reale del numero complesso (a
)
imaginary
: la parte immaginaria del numero complesso (b
)
Devi implementare questi metodi magici:
__add__
: Questo metodo dovrebbe sommare due numeri complessi e restituire un nuovo oggettoComplexNumber
che rappresenta il risultato: .
__sub__
: Questo metodo dovrebbe sottrarre un numero complesso da un altro e restituire un nuovo oggettoComplexNumber
che rappresenta il risultato: .
__mul__
: Questo metodo dovrebbe moltiplicare due numeri complessi e restituire un nuovo oggettoComplexNumber
che rappresenta il risultato: .
__truediv__
: Questo metodo dovrebbe dividere un numero complesso per un altro e restituire un nuovo oggettoComplexNumber
che rappresenta il risultato: .
Oltre ai metodi magici numerici, dovresti anche implementare un metodo magico
__str__
che restituisca il numero complesso come <real> + <imaginary> i
.Input | Uscita |
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