Реферат: Генерация комбинаторных объектов

M - по сколько символов в сочетании

Основная идея генерации таких сочетаний с повторениями заключается в следующем:

Сочетания записываем в виде (N-1)-го нуля и M единиц ,где единицы заменяют символы, а нули выступают в pоли pазделителей.

Напpимеp:

ABB - 1 0 1 1 AAC - 1 1 0 0 1 C C C - 0 0 1 1 1

A B B A A C C C C

При таком подходе для решения задачи достаточно сгенерировать все перестановки из M единиц и N-1-го нуля.

Ниже приводится программа, которая решает поставленную задачу.

const

alphabet : string[26] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

var

b : array [1..100] of byte;

N,i,j,k,M,N1 : byte;

Procedure SwapB(i,k:byte);

var x : byte;

begin

x:=B[i]; B[i]:=B[k]; B[k]:=x;

end;

Procedure WriteB;

var i,j : byte;

begin

j:=1;

for i:=1 to N do

if b[i]=0

then Inc(j)

else write(alphabet[j]);

writeln;

end;

begin

К-во Просмотров: 404
Бесплатно скачать Реферат: Генерация комбинаторных объектов