Distinguishable objects into distinguishable boxesНет способы размещения K различимых элементов в п различимого коробок
Это очень похоже на этот вопрос, публикуемый. Я пытаюсь получить код python для этого вопроса. Обратите внимание, что это похоже на ключевое различие. то есть Ковш может быть пустым, в то время как другие ведра содержат все элементы. Даже этот случай будет рассматриваться как отдельный случай.
, например:
Рассмотрим у меня есть 3 пунктов А, В, С и 3 ведра В1, В2, В3
В таблице ниже будет показывать ожидаемый результат:
B1 B2 B3 (A,B,C) () () () (A,B,C) () () () (A,B,C) (A) (B) (C) (A) (C) (B) (B) (A) (C) (B) (C) (A) (C) (B) (A) (C) (A) (B) (A,B) (C) () (A,B) () (C) (B,C) (A) () (B,C) () (A) (A,C) (B) () (A,C) () (B) () (A,B) (C) (C) (A,B) () () (B,C) (A) (A) (B,C) () () (A,C) (B) (B) (A,C) () () (C) (A,B) (C) () (A,B) () (A) (B,C) (A) () (B,C) () (B) (A,C) (B) () (A,C) Length is 27.
>>def make_sets(items, num_of_baskets=3):
pass
>>make_sets(('A', 'B', 'C', 'D', 'E'), 3)
Я ожидаю, что выход функции даст мне эти комбинации в виде списка списков кортежей. Я говорю это снова, число элементов является переменным, и количество ведер также является переменной.
** Пожалуйста, предоставьте код python для функции make_sets.
Если кто-то может объяснить математическую комбинаторика. Я бы тоже очень признателен. Я потратил более 2 дней на эту проблему, не достигнув определенного решения.
Hi Pedro. +1 для ответа. Как вы думаете, вы можете легко взломать код python для этой проблемы? –
Короткий ответ на это будет «лямбда-элементы», num_of_baskets: num_of_baskets ** items'. Однако, не знаю, думаете ли вы о каком-то симуляции самого процесса. –
Я вроде хочу, чтобы функция make_sets вызывалась и возвращала список списка кортежей. –