Eine komplexe Zahl wird in der Form z = a + b * i ausgedrückt, wobei:
a der Realteil ist (eine reelle Zahl),
b der Imaginärteil ist (ebenfalls eine reelle Zahl), und
i die imaginäre Einheit ist, für die i^2 = -1 gilt.
Die Konjugierte der komplexen Zahl z = a + b * i ist gegeben durch:
zc = a - b * i
Der Betrag (oder Modul) von z ist definiert als:
|z| = sqrt(a^2 + b^2)
Das Quadrat des Betrags wird als Produkt von z und seiner Konjugierten zc berechnet:
|z|^2 = z * zc = a^2 + b^2
Die Summe zweier komplexer Zahlen z1 = a + b * i und z2 = c + d * i berechnest du, indem du ihre Real- und Imaginärteile getrennt addierst:
z1 + z2 = (a + b * i) + (c + d * i)
= (a + c) + (b + d) * i
Die Differenz zweier komplexer Zahlen erhältst du, indem du die jeweiligen Teile subtrahierst:
z1 - z2 = (a + b * i) - (c + d * i)
= (a - c) + (b - d) * i
Das Produkt zweier komplexer Zahlen ist definiert als:
z1 * z2 = (a + b * i) * (c + d * i)
= (a * c - b * d) + (b * c + a * d) * i
Für den Kehrwert einer komplexen Zahl ungleich null gilt:
1 / z = 1 / (a + b * i)
= a / (a^2 + b^2) - b / (a^2 + b^2) * i
Für die Division einer komplexen Zahl durch eine andere gilt:
z1 / z2 = z1 * (1 / z2)
= (a + b * i) / (c + d * i)
= (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i
Potenziert man e (die Basis des natürlichen Logarithmus) mit einem komplexen Exponenten, lässt sich das mit der eulerschen Formel ausdrücken:
e^(a + b * i) = e^a * e^(b * i)
= e^a * (cos(b) + i * sin(b))
Da du keine eingebaute Unterstützung für komplexe Zahlen verwenden sollst, implementiere die folgenden Operationen:
Raku hat eingebaute Unterstützung für komplexe Zahlen1, daher geht es in dieser Übung eher um das Erstellen eigener Operatoren2. Operatoren werden nach ihrer Position relativ zu ihren Operanden klassifiziert. In dieser Übung gibt es vier Typen, nämlich:
Melde dich bei Exercism an, um Raku mit 94 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.