bcln gesucht!
-
Ich suche nach einer Funktion die mir zufalässig ln (natürlicher Logarithmus) ausrechnet. So schnell wie möglich und fehlerfrei. Also wenn ich 3235 Stellen von ln(23.45667578) haben will, dann sollte auch jede einzelne Stimmen!
Ich hoffe ihr habt da was!
P.S.: Die Funktion hier: http://php.net/manual/fr/ref.bc.php ist gänzlich ungeeignet. Man muss die Anzahl der Iteratoren angeben.
-
Was genau meinst du mit 3235 Stellen? Soviele Nachkommastellen? Dazu wirst du soetwas wie mpfr brauchen...
PHP ist da nicht wirklich die goto sprache...
-
Das ganze soll aber online laufen!
-
Was willst du denn damit machen? Rechnen? Dann kannst du PHP getrost vergessen ...
-
Leider hab ich keine Alternativen...
Oder es wären mir zumindest keine bekannt!
-
Die erinnerung schrieb:
Leider hab ich keine Alternativen...
Oder es wären mir zumindest keine bekannt!
Dann sag' was du machen willst ...
-
Ich möchte ein Online-Toolerstellen, dass Verschiedene Irrationale Zahlen ausrechnet. Mit gewünschter genauigkeit. Und für eine Zahl brauche ich halt mal ln!
Ich hab auch schon meine eigene Variante entwickelt, aber die ist offensichtlich ungenau!
function bcln($zahl, $scale = null) { $count = "-1"; $wert = "0"; $kontrolle = "1"; $tkp1 = "-1"; if($scale != null) { while($wert != $kontrolle) { $count = bcadd($count, "1", 0); $tkp1 = bcadd($tkp1, "2", 0); $kontrolle = $wert; $wert = bcadd($wert, bcmul(bcdiv("2", $tkp1, $scale), bcpow(bcdiv(bcsub($zahl, "1"), bcadd($zahl, "1"), $scale), $tkp1), $scale), $scale); } } else { while($wert != $kontrolle) { $count = bcadd($count, "1", 0); $tkp1 = bcadd($tkp1, "2", 0); $kontrolle = $wert; $wert = bcadd($wert, bcmul(bcdiv("2", $tkp1), bcpow(bcdiv(bcsub($zahl, "1"), bcadd($zahl, "1")), $tkp1))); } } return $wert; }
Hier treten massive Rundungsfehler auf!
-
Ich werde das nie empfehlen, aber ich habe mal davon gehört, dass man in PHP auch andere Programme starten kann und deren Ausgabe an den Benutzer weiterleiten.
Wenn du unix verwendest könntest zu z.B.: Python oder http://en.wikipedia.org/wiki/Bc_programming_language mit entsprechenden Parametern aufrufen und deren Ausgabe weiterverarbeiten.