Задача распределения шоколада с ограничением k-шоколадок за разPython

Программы на Python
Ответить
Anonymous
 Задача распределения шоколада с ограничением k-шоколадок за раз

Сообщение Anonymous »

Вопрос: N шоколадных конфет нужно распределить между 3 детьми так, чтобы каждый из детей мог одновременно получить максимум k шоколадных конфет. Сколькими способами можно раздать шоколадные конфеты?
Например:
ВВОД:

Код: Выделить всё

k = 2
n = 2
ВЫВОД:

Код: Выделить всё

maximum number of ways: 6
Объяснение:

Код: Выделить всё

{[2, 0, 0], [0, 2, 0], [0, 0, 2], [1, 1, 0], [0, 1, 1], [1, 0, 1]}
ВВОД

Код: Выделить всё

k = 5
n = 15
ВЫХОД:

Код: Выделить всё

maximum number of ways: 1
Объяснение:

Код: Выделить всё

{[5, 5, 5]}
Сначала я попытался получить прямой ответ, составив уравнение с использованием перестановок и комбинаций. Я получил эту задачу на экзамене и сформулировал формулу, которую точно не помню, но она выглядела примерно так:

Код: Выделить всё

for i in range(3+1):
total += (-1)**(i)*comb(3, 1)*comb(n-i*(k+1)+2, 2)
Это то, что я запомнил, но это неправильно.

Подробнее здесь: https://stackoverflow.com/questions/769 ... constraint
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»