Machten en wortels berekenen in Php

Zoals in elke programmeertaal, zal je ooit eens met machten en wortels moeten rekenen. In Php kan je dit doen met slechts 2 functies die heel logisch in elkaar zitten. We spreken hier over de functies sqrt() (komt van SQuareRooT) en pow() (komt van POWer up). Deze 2 functies zijn enorm simpel in het gebruik en kunnen toch redelijk krachtige berekeningen aan.

Machten berekenen kan iedereen vast wel. Op de geavanceerdere rekenmachines wordt dit zo genoteerd:

getal ^ macht

Maar hoe zet je dat nu om in Php-code? Dit zal alvast niet werken:

echo (2 ^ 3);

Dit geeft bij mij als resultaat “1″ terwijl dit eigenlijk “8″ moet zijn. We moeten dus gebruik maken van de functie pow(). De functie pow() heeft een heel simpele syntax:

pow( getal, macht );

Als we dus 2 tot de 3e macht willen bereken hoeven we enkel dit te doen:

pow(2, 3);

Dit zal als resultaat “8″ geven. Natuurlijk houdt niemand je tegen om grotere machten te berekenen. Vroeger onstond het probleem dat je scriptje vastliep bij het gebruik van extreem grote machten. Gelukkig is er sinds Php 4.2.0 een beveiliging daartegen ingebouwd. Als Php te grote machten krijgt om uit te rekenen, zal hij netjes een FALSE teruggeven. Je kan dus op een leuke manier dit opvangen:

if ($resultaat = pow(grondgetal, macht))
{
    echo 'Macht uitgerekend: '.$resultaat;
}
else
{
    echo 'Macht niet uitgerekend. Macht was te groot.';
}

Als je macht te groot is, dan zal hij dit dus netjes melden.

Nu kan je ook wortels berekenen. Hiervoor gebruiken we sqrt(). Sqrt() heeft een heel simpele syntax zoals we dat gewoon zijn van Php:

sqrt( getal );

Php zal dan de vierkantswortel van het gegeven getal uitrekenen. Deze code:

echo sqrt( 16 );

zal heel braafjes “4″ als resultaat geven.

Maar let op, sqrt() dient enkel voor vierkantswortels. Derdemachtswortels en dergelijke kan hij niet berekenen. Gelukkig kunnen we hiervoor pow() “misbruiken” zoals ze dat ook wel noemen. Het is algemeen geweten dat bijvoorbeeld de derdemachtswortel van 8 ook zo kan geschreven worden:

8 ^ (1 / 3)

Zoals je ziet, zetten we de 3 van derdemachtswortel in de noemen van een breuk. Als je dus de derdemachtswortel van 8 in Php wil bereken, kan je simpelweg zo doen:

echo pow(8, (1 / 3));

Dit geeft netjes het resultaat “2″ weer. Persoonlijk vind ik dit een beetje een rare wijze van schrijven in mijn code en dus heb ik een eigen functietje gemaakt dat ervoor zorgt dat ik het bereken van wortels op dezelfde manier kan doen als het berekenen van machten:

function wortel ($getal, $wortel)
{
    return pow ($getal, (1 / $wortel));
}

Als ik met behulp van deze functie de derdemachtswortel van 8 wil bereken, geef ik dit in:

echo wortel(8, 3);

Dit geeft dan netjes het resultaat “2″ weer.

Zoals je ziet is het berekenen van machten en wortels in Php niet moeilijk. Met een kleine extra functie kan je zelfs op heel overzichtelijke manier derdemachtswortels en dergelijke meer berekenen.

Plaats een reactie

Uw emailadres zal niet gepubliceerd worden.

*

U mag deze HTML tags en attributen gebruiken: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">