Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Struktury.docx
Скачиваний:
37
Добавлен:
04.04.2018
Размер:
2.84 Mб
Скачать

Комбинаторика

Перестановки. Генераторы перестановок. Перестановка – вариант расположения n объектов в линейной последовательности при этом состав объектов не меняется. Для 3-х величин a,b,c: abc, bca, cab,bac,acb,cba 3!=12*3=6 комбинаций

Переставлять описание объектов неразумно, теряется их дивергентность и время. Аперировать надо адресами. Адресами могут служить индекс массива записи. В программе ген. перестановки будут перемещаться курсоры (по мере), а предметная сущность остается за рамками схемы операции. Есть простой способ: считаем ? влияние кольцом и n перестановок получаем вращением кольца. Когда кольцо совершит полный оборот на одну позицию, часть оглавнения и снова ? кольцо. Получаем следующие n перестановок и т.д.

Function GenPer(var p;array of integer; n”integer=maxint):Boolean var (j,d):integer; begin if n=maxint then n=length(p); repeat dec(n); d=p[0]; for j:=1 to n do begin if n=1 then p[0]=p[length(p)-1] else p[j-1]=p[j]; p[n]:=d; end; result:=d<n / d<n поле генерации всех перестановок. until not Result or (n=1); end;

Сочетание (Sn)m – подмножество S, базового множества с попарного различными элементами n – мощность множества m – можность подмножества

Таким способом можно посчитать… For i:=1 to n-m+1 do For j:=i+4 to n-m+2 do For k:=j+1 to n-m+3 do For z:=y+1 to n do т.ц. задается сочетания I,j,k и тд

Недостаток: жесткая настройка значений n. Процедуру можно осуществить универсальным генератором со скрытой рекурентностью курср в массив p, подобно ?

Соседние файлы в папке Лекции