将n
项目(例如2个,最多100个)分配到x组的最佳方法是什么。每个组中应包含大约相同数量的项目。
简单的例子是 n=100; x=2;
100/2 =每组50件
如果我们涉及浮点数怎么办,例如 n=100; x=3;
100/3 = 33.33
我们将需要两组嵌套33个项目和一组嵌套34个项目。
另一个示例:n=8; x=3
8/3 = 2.66
关于如何解决这个问题有什么建议吗?
没关系,只是用例,对于好奇的人:在我的UI中,我试图将Tabstripes分成多行,一次只显示一行,这样,如果所有Tabstripes都不适合一行,我们就可以分发他们以编程方式。
期待您的回答!
在按组分配floor(n / x)
项目之后,x
剩下的就是n mod x = n - floor(n / x) * x
项目,这是中的值[0, x)
。您可以轻松地添加1
到每个组i=1..x
用i <= n mod x
。
for i=1..x
group[i] <- floor(n / x) + (i <= n mod x ? 1 : 0)
这和
for i=1..(n mod x)
group[i] <- ceil(n / x)
for i=(n mod x + 1)..x
group[i] <- floor(n / x)
例如,n = 11, x = 3
您最终将得到:
group[1] <- 3 + (1 <= 2 ? 1 : 0) = 4
group[2] <- 3 + (2 <= 2 ? 1 : 0) = 4
group[3] <- 3 + (3 <= 2 ? 1 : 0) = 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句