Какое максимальное количество одинаковых наборов можно собрать, чтобы использовать все шоколадные медальоны
Классная задача на разбиение на одинаковые наборы. Общий подход без конкретных чисел таков:
Что означает “максимальное количество одинаковых наборов, чтобы использовать все медальоны”:
- Пусть у вас есть k разных дизайнов (цветов) медальонов.
- Пусть количество медальонов каждого дизайна таково: n1 медальонов первого дизайна, n2 — второго, ..., nk — k-го.
- Вы хотите разбить все медальоны на t одинаковых наборов, причём каждый набор содержит одинаковую по композиции multiset дизайнов (то есть по каждому дизайну в наборе должно быть ровно ni/t штук, где ni — количество данного дизайна).
- Условие: для всех i выполняется ti делит ni, то есть ni делится на t.
- Максимальное possible t — это наибольший общий делитель всех ni:
t = gcd(n1, n2, ..., nk).
Как это работает пошагово:
1) Посчитать, сколько медальонов каждого дизайна у вас есть: n1, n2, ..., nk.
2) Найти НОД (gcd) этих чисел.
3) Максимальное число идентичных наборов равно этому gcd. В каждом наборе будет ni/t медальонов дизайна i.
4) Если взять пример: допустим n1=4, n2=6, n3=10. gcd(4,6,10)=2. Значит можно собрать 2 одинаковых набора. В каждом наборе будет 4/2=2 медальона дизайна 1, 6/2=3 медальона дизайна 2, и 10/2=5 медальонов дизайна 3.
Замечания:
- Если у вас всего один дизайн (один тип медальонов), gcd будет равен этому числу, и можно сделать столько наборов, сколько медальонов всего.
- Если какой-то дизайн встречается ноль раз (реже в задачах), его учёт можно исключить из расчёта, иначе формула не применится напрямую — нужно считать только те дизайны, которые есть.
Чтобы посчитать точно в вашем случае, пришлите количества медальонов по каждому дизайну (например: красный — 4, синий — 6, зелёный — 10). Я посчитаю gcd и скажу максимальное число идентичных наборов и состав каждого набора.