Keine Quadratwurzel

schiese

Erfahrenes Mitglied
Hallo
ich wollte mal fragen, ob es auch eine Funktion gibt, die z.B. die 4te Wurzel aus einer Zahl zieht. Gefunden habe ich nur sqrt() und die zieht nur die Quadratwurzel.

Danke Gunnar
 
Für den speziellen Fall kannst Du [phpf]sqrt[/phpf] zwei mal anwenden.
Ansonsten akzeptiert [phpf]pow[/phpf] reelle Zahlen, was nichts anderes bedeutet, als dass Du damit auch beliebige Wurzeln ziehen kannst (Beispiel: pow(27,1/3)=3).

Gruß hpvw
 
Danke hpvw. Da hätte ich auch drauf kommen können. War aber auf eine Funktion fixiert und habe da nicht dran gedacht.

Gunnar
 
hpvw hat gesagt.:
Ansonsten akzeptiert [phpf]pow[/phpf] reelle Zahlen, was nichts anderes bedeutet, als dass Du damit auch beliebige Wurzeln ziehen kannst (Beispiel: pow(27,1/3)=3).

Gruß hpvw

Aehm, ich hab gerade dein Post gelesen und dacht emir, das dies auch ein schöner guter Hinweis ist.
Und das Brüche auch exponentiell dargestellt werden können ist ja auch hinlängst bekannt.
Aber ich habe gerade mal nachgelesen auf php.net/pow

php.net hat gesagt.:
echo pow(-1, 5.5); // error

das würde doch bedeuten das 1/3 als 2ter Parameter nich gehen würde, da es ja das gleiche ist wie 0.333333 (näherungsweise)

Oder unterscheidet die Funktion zwischen expliziten float/double Zahlen und Operationen, die sowas zurückliefern?

MfG
 
Das oben gepostete Beispiel ergibt 3, das habe ich vorm posten getestet.
In der Doku werden Probleme mit negativen Basen erwähnt. Unter PHP5 funktioniert Dein Beispiel mit pow(-1,10/2). Daraus schließe ich, dass die von Dir angesprochene Unterscheidung existiert. Es funktioniert übrigens auch, wenn Du den Ausdruck im Exponenten zunächst einer Variablen zuweist und der Funktion diese Variable übergibst. Dein Ausdruck mit positiver Basis 1 funktioniert auch.

Gruß hpvw
 
Ich habe das Thema gerade erneut gelesen und nun eine Lösung für mein damaliges Problem gefunden. Falls es jemanden interessiert:
PHP:
<form method="post" action='<?php echo $_SERVER['PHP_SELF']; ?>'>
<input class="wvw" type="text" name="wievieltewurzel" maxlength="100">
<p>
<input class="zahl" type="text" name="zahl">
<p>
<input type="submit" value="Berechnen">
</form>


<p><br>

<?php

if ( isset($_POST['wievieltewurzel']) && isset($_POST['zahl']) ) {


echo "<p />";

$wievieltewurzel = $_POST['wievieltewurzel'];
$zahl = $_POST['zahl'];
$laenge = strlen($zahl);
$laenge2 = $laenge - 1;
$zuerst = substr($zahl,0,1);
$danach = substr($zahl,1,$laenge2);
$endgueltig = $zuerst.".".$danach;
$log1 = log10($endgueltig);
$plusanzahl = $log1 + $laenge2;
$vorpotenz = $plusanzahl / $wievieltewurzel;
$ergebnis = pow(10,$vorpotenz);


echo "Die ".$wievieltewurzel." Wurzel aus ".$zahl." ist:<p />";
echo $ergebnis;

}

?>

PS: Geht mit Sicherheit auch einfacher ;-)

schiese
 
Ja, es geht einfacher ;)

PHP:
<?php

if ( isset($_POST['wievieltewurzel']) && isset($_POST['zahl']) ) {

$wievieltewurzel = $_POST['wievieltewurzel'];
$zahl = $_POST['zahl'];
echo "Die ".$wievieltewurzel." Wurzel aus ".$zahl." ist: ".pow($zahl, 1/$wievieltewurzel);

}

?>
Das ist ja genau das Prinzip, das hier diskutiert wurde...

Dom
 
Zurück