Биномиальные коэффициенты
Нахождение биномиальных коэффициентов с помощью треугольника Паскаля.
program binom_koeff_treug_paskalya;
uses crt;
{Наибольшее возможное значение числа (m=3247),
для которого можно вычислить число сочетаний из него}
const m=3247;
type
vector = array[0..m] of extended;
var
n,k:integer; C_n_k:extended;
ch:char;
function bk(n,k:integer):extended;
var
i,j:integer;v1,v2:vector;
begin
if (k=0) or (k=n) or (n=1) or (k=1) then
begin
if k=1 then bk:=n else bk:=1;
exit
end;
v1[0]:=1;v1[1]:=2;v1[2]:=1;
for j:=3 to n-1 do
begin
for i:=0 to j do v2[i]:=v1[i];
for i:=0 to j do
begin
if (i=0) or (i=j) then v1[i]:=1 else
if im then writeln('Слишком большое n');
if (k<0) or (k>n) or (n>m) or (n<1) then readln;
until (k<=n) and (k>=0) and (n<=m);
C_n_k:=bk(n,k);
writeln('Равно ',C_n_k:30:0);
writeln('Выход - Escape, продолжение Enter');
ch:=readkey;
until ch=#27; {выход из программы по клавише Esc, код 27}
end.