Ik ben bezig een phpscriptje te vertalen naar een C-programma voor een microcontroller. Ik heb geen plaats om een math.h header mee te koppelenen zou dus graag weten hoedat een zogenaamde pow($X, $Y) intern geprogrammeerd is.
MAW: hoe programmeer je handmatig(zonder voorgepreparreerde functies) x^y.
Als er iemand een link kan geven waar er nog meer van dergelijke zaken staan uitgelegd... Ik zal dergelijke zaken nog wel meer tegenkomen...
Greetz,
Thomas
5 antwoorden
Gesponsorde links
Abbas - 11/03/2008 20:41 (laatste wijziging 11/03/2008 20:42)
Je moet je macht opdelen:
2^5.2 => 2^(5 + .2) => 2^5 * 2^.2
2^5 kan je dan via bovenstaande manier bereken.
De andere is iets moeilijker.
Je moet eerst .2 omzetten naar (1/5). Dan krijg je 2^(1/5).
2^1/5 = X
=>
X^5 = 2 (normaal is deze tussenstap niet nodig maar gewoon voor de duidelijkheid)
=>
5V2 = X
Nu zijn er wss simpeler oplossing wss maar zo gaat het volgens mij voor de tweedemachtswortel:
xnieuw = (1/2) * xoud + (1/(2*xoud))
=> bovenstaande formule blijven herhalen (recursie) tot je hetzelfde getal blijft bekomen. (checken op x cijfers na de komma... kan je zelf bepalen dan:-))
De derdemachtswortel weet ik niet zeker, maar ik gok erop dat je die 2's moet vervangen door dries. Enz enz... dus de 2 in dit geval door een 5 vervangen en je bent er.