Хорошо, я не уверен, что название настолько эффективно, но это лучшее, что я мог придумать.
В основном вот сценарий.
У меня 11 категорий. В каждой категории у меня есть предметы, но в одной категории может быть 1 предмет, у 1 - 20.
Теперь я хочу разделить 11 категорий на 5 стеков или столбцов.
Я хочу, чтобы каждый из стеков содержал равное или почти равное количество предметов, и никакие категории не могут переполнять стек.
Итак, учитывая следующие данные:
Category | Items
-------------------------
Cat 1 | 10
Cat 2 | 3
Cat 3 | 7
Cat 4 | 11
Cat 5 | 5
Cat 6 | 13
Cat 7 | 19
Cat 8 | 5
Cat 9 | 3
Cat 10 | 9
Cat 10 | 15
Total = 100 Items
Так что я хочу, чтобы предметы были равномерно распределены по стопкам.
Есть 5 стеков, поэтому чтобы быть равными, должно быть 20 предметов в стеке. Но есть проблема, предметы из 1 стека не могут переполниться. Итак, как я могу рассчитать данные для вывода что-то вроде этого:
Stack 1|Stack 2|Stack 3|Stack 4|Stack 5
-------|-------|-------|-------|-------
Cat 10 |Cat 1 |Cat 11 |Cat 6 |Cat 7
Cat 4 |Cat 3 |Cat 8 |Cat 9 |
|Cat 2 | |Cat 5 |
20 20 20 21 19
Неважно, к какой категории относится какая стопка, если предметы распределены наиболее равномерно по стопкам.
Теперь результаты этого расчета стека будут кэшироваться, так как мне не нужно вычислять очень часто, поэтому, если решение очень сильно загружает процессор, все равно отправьте его.
Спасибо:)