grosse Zahl
am 05.04.2006 18:57:04 von unknownPost removed (X-No-Archive: yes)
Post removed (X-No-Archive: yes)
Mike Mueller schrieb:
> $fibo=Math::BigInt->new((1/sqrt(5))*((((1+sqrt(5))/2)**($zah l+1))
> -(((1-sqrt(5))/2)**($zahl+1))));
>
> print "$fibo\n";
> ___
> Eigentlich erwarte ich als Ergebniss:
> 37889062373143906
> Ich bekomme aber das:
> 37889062373144000
Ich kenne mich mit den Math-Libraries nicht aus, das Problem an deiner
Formel ist aber, dass Ausdrücke 1/sqrt(5) nur in der üblichen Genauigkeit
ausgewertet werden, was für deine Anwendung nicht mehr ausreicht.
Stattdessen müsstest du diese Werte wohl als BigFloats erzeugen, so wie
unten skizziert:
-------------------
use Math::BigFloat;
$zahl = 80;
$sqrt5 = Math::BigFloat->new(5);
$sqrt5->bpow(0.5);
$golden = Math::BigFloat->new(($sqrt5+1) / 2);
$fibo= ($golden**($zahl + 1) - (1-$golden)**($zahl-1))/$sqrt5;
print $fibo,"\n";
-----------------------
Gruss
Roman°
--
IRC Freenode, Channel: #usenet-friends
NEU: Das Web-Interface zum Channel:
---------------> http://albasani.net/cgiirc/irc.cgi <----------------
Post removed (X-No-Archive: yes)