Autor Beitrag
fibber
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 17.01.10 16:31 
Hallo,

ich muss für eine Projektarbeit den natürlichen Logarithmus einiger recht großer Fibunacci Zahlen berechnen und würde dies gerne in Delphi bzw. Lazarus realisieren. Nur leider weiß ich nicht wie ich das bewerkstelligen soll. Den Logarithmus benötige ich auf zwei Nachkommastellen genau (abgeschnitten, nicht gerundet).
Die ersten Logarithmen konnte ich bereits mit wolframalpha berechnen (log(fib[x])).
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
                    x > log(fib[x])
                   15 > 6,41
                  150 > 71,37
                1.500 > 721,01
               15.000 > 7217,37
              150.000 > 72180,96
            1.500.000 > 721816,93
           15.000.000 > 7218176,57
          150.000.000 > ?
        1.500.000.000 > ?
       15.000.000.000 > ?
      150.000.000.000 > ?
    1.500.000.000.000 > ?
   15.000.000.000.000 > ?
  150.000.000.000.000 > ?
1.500.000.000.000.000 > ?



Bitte helft mir dabei, die Berechnung mittels Delphi zu realisieren.

Ich hab keine Ahnung wie ich mit so riesigen Zahlen in Delphi rechnen soll.


Zum Berechnen der Fibunacci Zahlen würde ich die folgende Näherungsformel verwenden.
fib[x] = (1/sqrt(5))*((1+sqrt(5))/2)^x


Beim Logarithmus weiß ich auch nicht so recht weiter.
Wahrscheinlich muss man erst den den log_2 berechnen, da sich dieser recht schnell berechnen lässt,
und anschließend eine Basisumrechnung vornehmen.

de.wikipedia.org/wiki/Logarithmus
de.wikipedia.org/wiki/Fibonacci-Folge


Viele Grüße,
Anja F.


Zuletzt bearbeitet von fibber am So 17.01.10 17:11, insgesamt 1-mal bearbeitet
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 17.01.10 16:39 
Schau Dir mal von mir die BigNum2-Unit an. Damit geht das Problemlos. Allerdings (wichtige Einschränkung) ist die auf Ganzzahlen ausgelegt; für Fließkommazahlen müsstest du also selber etwas Hand anlegen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: So 17.01.10 16:47 
Hallo,

Meiner unmaßgeblichen Meinung nach lässt sich da mit den Rechenregln für den Logarithmus noch etwas umformen: ln((1/sqrt(5))*((1+sqrt(5))/2)^x) = :?:.. (ich will dir ja nicht den ganzen Spaß nehmen :mrgreen:).

Wofür brauchst du das ganze überhaupt? Wenn das vom Lehrer kommt, musst du sicher noch was umformen ;) Eventuell kannst du auch eine sehr viel grobere Näherung nehmen, die sich dafür besser umformen lässt(die ersten 2 Nachkommastellen sollten halt noch stimmen, da ist ein bisschen Spielraum).

Allgemein kann man in Delphi für große Zahlen entweder den Datentyp Int64 nehmen, oder eine der hier im Forum verfügbaren Units à la BigNum, ..

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)


Zuletzt bearbeitet von Hidden am So 17.01.10 16:56, insgesamt 2-mal bearbeitet
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 17.01.10 16:51 
Ja, das lässt sich indeed ;-) Ich komme auf eine Addition, eine Multiplikation und eine Konstante ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
fibber Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 17.01.10 17:03 
Hidden, ich danke dir. Manchmal sieht man den Wald vor lauter Bäumen nicht :oops:

Viele Grüße,
Anja F.
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: So 17.01.10 17:12 
Hi :) (und estmal :welcome: im Delphi-Forum, ich hab' gar nicht gesehen, dass du neu bist :beer:)

Und dann ist die Münze sofort ganz gefallen? Das ging ja dann trotzdem noch recht schnell :zwinker:

lg,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
fibber Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 17.01.10 17:30 
Danke für die Willkommensgrüße :)

Ja, die Münze ist äußerst schnell gefallen.
Falls es jemanden interessiert:

ln((1/sqrt(5))*((1+sqrt(5))/2)^x) = x*(ln((1+sqrt(5))/2)))+ln(1/sqrt(5))

Viele Grüße,
Anja F.