作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
假设我想将 y
个项目平均分配到 x
个桶中。如果 x
是 y
的倍数,则此分布将是均匀的,否则我可以在每个桶中得到 0
项。例如:
例如:我有 3
个桶,我想每个分发 2
个项目。由于执行除法 (2/3)
将导致每个桶有 0
个项目。如何实现 1
、1
、0
的分布?
最佳答案
这种想法应该行得通:
package sandbox;
public class Sandbox
{
public static void main(String[] args)
{
int numBuckets = 12;
int numItems = 34;
int itemsPerBucket = (numItems / numBuckets);
int remainingItems = (numItems % numBuckets);
for (int i = 1; i <= numBuckets; i++)
{
int extra = (i <= remainingItems) ? 1:0;
System.out.println("bucket " + i + " contains " + (itemsPerBucket + extra) + " items.");
}
}
}
这个的输出:
bucket 1 contains 3 items.
bucket 2 contains 3 items.
bucket 3 contains 3 items.
bucket 4 contains 3 items.
bucket 5 contains 3 items.
bucket 6 contains 3 items.
bucket 7 contains 3 items.
bucket 8 contains 3 items.
bucket 9 contains 3 items.
bucket 10 contains 3 items.
bucket 11 contains 2 items.
bucket 12 contains 2 items.
请注意,您所做的唯一循环是谈论每个桶。您可以轻松地询问一个桶号,然后无需循环即可查看其中有多少元素!
关于java - 将 'items' 平均分配到桶中(尽力而为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21713631/
假设我想将 y 个项目平均分配到 x 个桶中。如果 x 是 y 的倍数,则此分布将是均匀的,否则我可以在每个桶中得到 0 项。例如: 例如:我有 3 个桶,我想每个分发 2 个项目。由于执行除法 (2
我是一名优秀的程序员,十分优秀!