如何动态找到最大组大小

How to find maximum group size dynamically

如果我想对 'n' 值的列表进行分区,我想找到最大组大小 g_new。我们可以有任意数量的组。

我有: n 值和可能的最大组大小 g_max

例如

n = 110g_max = 25.

我们不能组成以下人数的小组:[28,28,27,27],因为任何小组都不能超过 25 人!

这里,解决方案是,g_new可以是22。因为它会形成5组,每组22。

我的问题是:

如何动态找到这个 g_new(此处为 22)值,给定:ng_max

请注意,我想在不违反 g_max!

的情况下组建尽可能多的小组

抱歉,如果这个问题太简单了,我想不通。

假设您的意思是 n=110 并且希望组大小最多相差 1,您可以先计算向上取整的所需组数,然后计算向上取整的组大小:

>>> n, g_max = 110, 25
>>> -(n // (-n // g_max))
22
>>> n, g_max = 110, 36
>>> -(n // (-n // g_max))
28