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 oggetto ComplexNumber che rappresenta il risultato: .
  • __sub__: Questo metodo dovrebbe sottrarre un numero complesso da un altro e restituire un nuovo oggetto ComplexNumber che rappresenta il risultato: .
  • __mul__: Questo metodo dovrebbe moltiplicare due numeri complessi e restituire un nuovo oggetto ComplexNumber che rappresenta il risultato: .
  • __truediv__: Questo metodo dovrebbe dividere un numero complesso per un altro e restituire un nuovo oggetto ComplexNumber 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

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