Уникальная комбинация с ограничением частоты - PullRequest
1 голос
/ 18 февраля 2020

Я python разработчик и работаю над сценарием python с уникальной комбинацией make из списка чисел. Я узнал, как архивировать это с помощью модуля python; itertools.

from itertools import combinations
alist = [1,2,3,4,5,6,7,8,9,10]
combs = list(combinations(alist, 6))

Приведенный выше код получает список всех уникальных комбинаций, в которых длина каждого элемента равна 6. Пример: (1,2,3,4,5,6), (1,2, 3,4,5,7) ...

Что мне нравится делать, так это накладывать ограничение частоты на каждый элемент. Поэтому, если я устанавливаю предел 1 как 50%, до 50% элементов в уникальных комбинациях содержат элемент 1. И мне нравится получать максимально возможный набор комбинаций.

Я думаю, что это своего рода проблема NP поэтому мы должны использовать жадный или другой алгоритм приближения, но я не могу найти пути. Пожалуйста, помогите мне с собственным представлением об этой проблеме.

...