Autor Beitrag
Fiete
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 603
Erhaltene Danke: 340

W7
Delphi 6 pro
BeitragVerfasst: Fr 11.08.23 16:40 
Moin,
das Programm berechnet die n-te Catalan-Zahl.
C250000
Was ist eine Catalanzahl: Info bei Wikipedia oder Mathematik-Alfa von Steffen
Zur Berechnung werden die Grundformeln modifiziert:
Formeln
Version 1
ausblenden Delphi-Quelltext
1:
2:
b:=2*n;
for i:=2 to n do b := b*(2*n+1-i) div i;

Version 2
ausblenden 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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
const BL=9;         // Länge der Basis
       T=1000000000// 10^BL  
       Null='00000000000000000000'// führende Nullen für Ausgabe

 type TFeld=Array of Extended;

Statt
ausblenden 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)); // INT64

if V[2]*QU>DIFF then QU:=INT((U[J]*T*T+U[J+1]*T+U[J+2])/(V[2]+V[1]*T)); // Extended


Viel Spaß beim Testen!

Gruß Fiete
Einloggen, um Attachments anzusehen!
_________________
Fietes Gesetz: use your brain (THINK)

Für diesen Beitrag haben gedankt: Andreas_500, Narses