Все сочетания множества 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;
|