Сочетания:          

Все сочетания множества abc по 2 выглядят следующим образом:
ab,ac,bc. Обозначим за N колличество элементов во множестве, а за M - по сколько их нужно собирать. Тогда колличество таких сочетаний - N! / ( m!*(N-m)! )
Структуры данных: Массив B[ ] - массив указателей. B[i] равен порядковому номеру элемента исходной последовательности, стоящему в генерируемой последовательности на i-м месте.
Алгоритм генерации следующего сочетания из предыдущего:
0) B[i]=i

1)
i=m;Пока (B[i]=N-m+i)and(i>0) i=i-1;
2) Если i=0 то все сочетания сгенеpиованы;
3) B[i]=B[i]+1;
Для i от i+1 до m
B[i]=B[i-1]+1;

 

Hosted by uCoz