【发布时间】:2021-05-24 19:21:01
【问题描述】:
所以我有一些瓶子,例如 1000 个,以及给定数量的盒子,例如 10 个。我需要将瓶子存放在盒子中,但要随机且在一个范围内。那么这是什么意思呢?例如,如果我说我的范围是 5% 到 50%,那么我需要将这 1000 个盒子分配到我的 10 个盒子中,从每盒 50 个开始,到每盒 500 个结束。这 10 个盒子中的每一个都必须有一个 50 到 500 之间的数字,它们必须是瓶子。目前我只是将整个事情平分:
private static int[] splitIntoChunks(int bottles,int boxes) {
int[] arr = new int[bottles];
int remain = boxes;
int partsLeft = bottles;
for (int i = 0; partsLeft > 0; i++) {
int size = (remain + partsLeft - 1) / partsLeft;
arr[i] = size;
remain -= size;
partsLeft--;
}
return arr;
}
考虑到我的产品系列也受到瓶子和盒子数量的影响,我正在努力寻找最优雅的解决方案。
【问题讨论】:
-
不太清楚你所说的“实体”和“项目”是什么意思。
-
谢谢,我试着用一个更有意义的例子来澄清它。