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]
- [1, 3, 3, 1]
- [1, 4, 6, 4, 1]
- [1, 5, 10, 10, 5, 1]
Quelle:
http://mathematix.de/assets/files/un...sarbeitung.pdf
(Genauer: die zwei angehängten Grafiken)
MfG, Aphton