Wspolczynniki rownania

0

Witam, mam zadanie: Napisz program ktory bedzie wypisywal wspolczynniki rozwiniecia rownania (a+b) do potegi n=tej.
Czyli wydaje mi sie ze program ma liczyc z trojkata newtona.
Zrobilem ze liczy (n nad k) = n!/ (k!(n-k)! program mi to liczy, tylko ze do pewnej wartosci wartosci (konkretnie do 13, bo tylko 13! zawiera sie w longindzie). Jest jakis inny sposob?
Kombinuje zeby najpierw obliczac n! jako n
(n-1)*(n-2) itd. az dojde do k. wtedy to skrocic i bedzie troche mniej mnozenia.
Potem chce wynik tego mnozenia ktore sie nie skrocilo podzielic przez k!.
Jak obliczylem bedzie mozna liczyc do 24-25-tej potegi.
I potem liczyc wedlug tego (n nad 0) nastepny (n nad 1) i tak az (n nad n).
Jednak nie potrafie tego wszystkiego polaczyc w pascalu, pomoze ktos?
Z gory dzieki.
Pozdrawiam

PS. Wrazie czego moge wstawic wieczorem kod ktory zrobilem (te liczenie tylko do 13 potegi).

0
saint34 napisał(a)

Czyli wydaje mi sie ze program ma liczyc z trojkata newtona.

jak już to z trójkąta PASCALA [!!!] [!!!]

0

Tfuu oczywiscie ze z trojkata pascala, sory za pomylke (ucze sie jednoczesnie do algebry).

0

Witam

function newton (n,k:longintl):longint;
var i:longint;
begin;
result:=1;if n-k>k then begin
for i:=n-k+1 to n do result:=resulti;
for i:=2 to k do result:=result/i; //

end else begin
for i:=k+1 to n do begin result:=resulti;
end;
for i:=2 to n-k do result:=result/i; //

end
end;

Linijki oznaczone //* sa mało efektywne (prędkość) ale za to dopuszczają większe liczby.

1 użytkowników online, w tym zalogowanych: 0, gości: 1