Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Pascalsches Dreieck (https://www.delphipraxis.net/153585-pascalsches-dreieck.html)

Aphton 9. Aug 2010 15:39

Pascalsches Dreieck
 
Liste der Anhänge anzeigen (Anzahl: 2)
Beschäftige mich gerade mit Kurven (Bezierkurven) und bin hier gerade bei Gleichungen N'ten Grades.
Fürs Lösen dieser braucht man die Binomialkoeffizienten, die man durch diese rekursive Funktion ermitteln kann.
Ist nichts großartiges, aber weils hier noch nicht vorhanden war, füg ichs mal hinzu.
Verbesserungsvorschläge sind natürlich willkommen.

Delphi-Quellcode:
type
  TIntArray = Array of Integer;

function PascalsTriangle(N: Integer): TIntArray;

  function _CalcPT(Values: TIntArray; const cN: Integer): TIntArray;
  var
    i, LastValue, CurrentValue: Integer;
  begin
    SetLength( Result, cN );
    Result[0] := Values[0];
    Result[High(Result)] := Values[High(Values)];
    LastValue := Result[0];
    for i := 1 to High(Result)-1 do
    begin
      Result[i] := LastValue + Values[i];
      LastValue := Values[i];
    end;
    if cN <= N then
      Result := _CalcPT( Result, cN + 1 );
  end;

begin
  if N > 0 then
  begin
    SetLength( Result, 2 );
    Result[0] := 1;
    Result[1] := 1;
    if N > 1 then
      Result := _CalcPT( Result, 3 );
  end else
    SetLength( Result, 0 );
end;
Ergebnisse der Funktion (Listenindexnummer entspricht dem Grad N):
  1. [1, 1]
  2. [1, 2, 1]
  3. [1, 3, 3, 1]
  4. [1, 4, 6, 4, 1]
  5. [1, 5, 10, 10, 5, 1]

Quelle: http://mathematix.de/assets/files/un...sarbeitung.pdf
(Genauer: die zwei angehängten Grafiken)

MfG, Aphton

jfheins 9. Aug 2010 15:49

AW: Pascalsches Dreieck
 
Hast du mal geschaut, ob das direkte Ausrechnen vielleicht schneller ist?

Weil n über k kann man ja mit einer Formel ausrechnen, und die Zeile im pascalschen Dreieck ist ja nichts anderes als eine Liste von Binominialkoeffizienten.

lbccaleb 9. Aug 2010 15:51

AW: Pascalsches Dreieck
 
Zitat:

Zitat von Aphton (Beitrag 1040556)
Ist nichts großartiges, aber weils hier noch nicht vorhanden war, füg ichs mal hinzu.

Stimmt nicht ganz :)

Dreieck 1
Dreieck 2
Dreieck 3

himitsu 9. Aug 2010 15:55

AW: Pascalsches Dreieck
 
wir haben dieses Dreieck sogag in BrainFuck irgendwo im Forum rumliegen :lol:

Aphton 9. Aug 2010 17:04

AW: Pascalsches Dreieck
 
:shock: Hui, nach was hab ich denn nur gesucht?
Wie auch immer...

MfG :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz