Я работаю над приложением, для которого я хочу взять множество C всех возможных k-комбинаций элементов в M (с || M | | = m) и накрываем C множествами k-комбинаций подмножеств N_i из M, причем || N_i || = n < m ∀ N_iАлгоритм для покрытия множества k-комбинаций M с подмножествами M
Итак, есть (m выбрать k) комбинации для покрытия, и каждый набор Q_i из n элементов будет содержать (n выбрать k) комбинации.
То, что я хотел бы это алгоритм, который строит множества Qi такие, что д минимизируется (т.е., как можно ближе к (м выберите к)/(п выбирают к), как это возможно)
Так, например, , если m = 100, k = 3 и n = 10, мне понадобится наименьший набор множеств из 10 элементов, чтобы их соответствующие наборы 3-комбинаций покрывали множество (100 выбирают 3) 3-комбинации M.
Интересная проблема. Просто любопытством, почему вы хотите построить меньшие наборы? – bacchus
@ bacchus на самом деле довольно сложно объяснить, но суть в том, что каждый из элементов M представляет собой булево событие, поэтому множество возможных состояний внутри M равно 2^M. если я могу разбить M на эти множества из N, || N || = n
Tom