-1

I want to find the maximum group size g_new if I want to partition a list of 'n' values. We can have any number of groups.

I have: n values and maximum group size possible g_max.

e.g.

n = 110 and g_max = 25.

We cannot form groups of size: [28,28,27,27] as no group should be more than 25!

Here, Solution is, g_new can be 22. as it will form 5 groups of 22 each.

My question is:

How can I find dynamically, this g_new (22 here) value, given : n and g_max

Note that I want to form biggest possible groups without violating g_max!

Sorry, if this question is too simple, but I cannot get my head around it.

sandeepsign
  • 539
  • 6
  • 11

1 Answers1

1

Assuming you meant n=110 and want group sizes to differ by at most 1, you could first compute the up-rounded number of needed groups and then the up-rounded group size:

>>> n, g_max = 110, 25
>>> -(n // (-n // g_max))
22
>>> n, g_max = 110, 36
>>> -(n // (-n // g_max))
28
Kelly Bundy
  • 23,480
  • 7
  • 29
  • 65
  • This is code is beautiful and hits the hammer on the nail. This is exactly, what was needed..! I am seeing this trick in python first time and love it after seeing it here. Thanks! – sandeepsign Aug 25 '21 at 19:51