Proloog
In de wiskunde zijn complexe getallen een uitbreiding van de reële getallen. We zullen hier niet al te diep duiken in de wiskundige achtergrond. Elk complex getal volgt de volgende structuur \(a + b * i\). Met \(a\) en \(b\) \(\in \mathbb{R}\). Voor eenvoud beschouwen we enkel \(\in \mathbb{N}\). Verder noemen we \(a\) het reëel getal en \(b\) het imaginair getal.
We wensen twee functies te maken die ons toestaan complexe getallen op te tellen en te vermenigvuldigen. Hiervoor zullen we ook een aantal hulpfuncties maken.
Formules uit de wiskunde die u zullen helpen:
\[som: (a + b*i) + (c + d*i) = (a + b) + (c + d) * i\]
\[vermenigvuldiging: (a + b*i) * (c + d*i) = (a*c - b*d) + (a*d + b*c) * i\]
Hulp functies
- clean. Omdat “3 + 5 * i” gelijk is aan “3+5i” en “-5 +3* i” aan “-5+3i” maken we eerst een clean functie zodanig elk complex getal in hetzelfde format staat. De functie neemt een string als argument en geeft deze string terug maar verwijdert alle spaties en “*”.
- str2lst. Deze functie neemt een string als argument en geeft een lijst terug. Deze lijst bestaat uit twee elementen. Het eerste element is het reëel getal en het tweede element is het imaginair getal.
- lst2str. Deze functie neemt een lijst als argument. Deze lijst volgt de opbouw zoals in str2lst besproken. Als return wensen we een string die volgende format volgt: “a + b i”. Let op de spaties en tekens. (Voor eenvoud tonen we ook getallen indien ze 0 zijn. 0 + 34 i is dus oké.). Noteer dat wanneer a < 0 je schrijft “-a” maar voor b schrijf je “- b”.
- som_aid. Deze functie neemt twee lijsten als argumenten. Beide lijsten volgen de opbouw zoals in str2lst besproken. Als return wensen we een lijst die de reële getallen en de imaginaire getallen respectievelijk optelt. (zie eerste formule in proloog).
- vermenigvuldiging_aid. Deze functie werkt net zoals de som_aid maar doet de bewerking voor vermenigvuldiging. (zie tweede formule in de proloog).
Functies
- som. Deze functies neemt twee complexe getallen (strings) en telt deze op en vervolgens geeft het resulterende complexe getal als return.
- vermenivuldig. Deze functie werkt net zoals som maar doet dit voor de vermenigvuldiging van complexe getallen.
Voorbeeld
>>> x = "5 + 3i"
>>> y = "3+5*i"
>>> print(som(x, y))
'8 + 8 i'
>>> vermenigvuldig(x, y)
'0 + 34 i'