Название: Алгоритм генерации уникальных сочетаний C(n,k) Отправлено: Aleksey от Июнь 27, 2004, 18:15 Господа,
Пожалуйста, помогите найти алгоритм (а лучше код) программы генерации сочетаний из n элементов по k (т.е. C(n,k)). Специфика задачи заключается в том, что среди n элементов могут быть одинаковые, а сочетания нужно получить только уникальные в смысле состава элементов (поэтому их может быть гораздо меньше, чем все C(n,k)). К примеру, генерируя сочетания из 223 по 2, на выходе нужно получить только 22 и 23, а не 22, 23 и 23 (к чему придет общий алгоритм решения этой задачи). Заранее благодарен. Название: Алгоритм генерации уникальных сочетаний C(n,k) Отправлено: goer от Декабрь 31, 2006, 19:18 Мдя... времени уже прошло много, так что автору ответ возможно и не понадобится, но может он поможет тем кто ищет сейчас.
Собственно, реализация алгоритма генерации следующего уникального сочетания из N чисел по K в С: Код:
Как известно, количество таких сочетаний вычисляется по формуле: С(N,K) = N! / (K!*(N-K)!) Поскольку на множестве этих последовательностей определен лексикографический порядок, то для того чтобы получить все перестановки, необходимо начинать с 1, 2 ... K |