Курсовая работа: Некоторые способы разбиения множеств

pred[j]:=k;

sled[j]:=0

end;

if sled[k]>j then begin {j образует новый блок }

pred[j]:=k; {все блоки справа от блока с номером k содержат элементы, большие j . Отсюда следует, что j образует новый одноэлементный блок }

sled[j]:=sled[k];

pred[sled[j]]:=j;

sled[k]:=j

end;

blok[j]:=sled[k] {переносим наш элемент в активный блок с номером k }

end

else begin {j движется назад }

blok[j]:=pred[k]; { помещаем j в предыдущий блок }

if k=j then if sled[k]=0 then sled[pred[k]]:=0 else begin

sled[pred[k]]:=sled[k];

pred[sled[k]]:=pred[k]

end

end;

write_razbienie;

j:=n;

while(j>1)and

((wper[j]and(blok[j]=j))or(not wper[j]and(blok[j]=1))) do begin

wper[j]:=not wper[j];

dec(j)

end

end

end.

Количество всех разбиений можно посчитать используя числа Белла и рекуррентную формулу (5).

Генерирование всех понятий

Для реализации данной задачи на Pascal’е вводим следующие типы данных и переменных:

К-во Просмотров: 328
Бесплатно скачать Курсовая работа: Некоторые способы разбиения множеств