Moin,
das Programm berechnet die n-te Catalan-Zahl.
Was ist eine Catalanzahl: Info bei
Wikipedia oder
Mathematik-Alfa von Steffen
Zur Berechnung werden die Grundformeln modifiziert:
Version 1
Delphi-Quelltext
1: 2:
| b:=2*n; for i:=2 to n do b := b*(2*n+1-i) div i; |
Version 2
Delphi-Quelltext
1: 2: 3: 4: 5:
| Nenner:=1.0; for K:=1 to N+1 do Nenner:=Nenner*K; Zaehler:=Power(2,N); for K:=1 to N do Zaehler:=Zaehler*(2*K-1); Ausgabe.Lines.Add(Format('%20.0f',[Zaehler/Nenner])); |
Die Langzahlunit arbeitet mit dem Datentyp Extended.
Der Unterschied zur INT64-Unit ist folgender:
Delphi-Quelltext
1: 2: 3: 4: 5:
| const BL=9; T=1000000000; Null='00000000000000000000'; type TFeld=Array of Extended; |
Statt
Delphi-Quelltext
1: 2: 3:
| if V[2]*QU>DIFF then QU:=Trunc((1.0*U[J]*T*T+U[J+1]*T+U[J+2])/(V[2]+V[1]*T)); if V[2]*QU>DIFF then QU:=INT((U[J]*T*T+U[J+1]*T+U[J+2])/(V[2]+V[1]*T)); |
Viel Spaß beim Testen!
Gruß Fiete