ComplexNumber クラス
あなたは、複素数の動作をカプセル化する
ComplexNumber
クラスを作成するよう求められています。複素数は、a + bi
の形で表すことができ、ここで a
と b
は実数、i
は方程式 の解です。この方程式を満たす実数は存在しないため、i
は虚数()と呼ばれます。あなたの
ComplexNumber
クラスは以下の属性を持たなければなりません:real
: 複素数の実部(a
)
imaginary
: 複素数の虚部(b
)
以下のマジックメソッドを実装してください:
__add__
: 2つの複素数を加算し、その結果を表す新しいComplexNumber
オブジェクトを返します: 。
__sub__
: 1つの複素数から別の複素数を減算し、その結果を表す新しいComplexNumber
オブジェクトを返します: 。
__mul__
: 2つの複素数を乗算し、その結果を表す新しいComplexNumber
オブジェクトを返します: 。
__truediv__
: 1つの複素数を別の複素数で除算し、その結果を表す新しいComplexNumber
オブジェクトを返します:
$$\frac{a1 \cdot a2 + b1 \cdot b2}{a2^2 + b2^2} + \frac{b1 \cdot a2 - a1 \cdot b2}{a2^2 + b2^2} i$$。
入力 | 出力 |
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