为了更清楚,我有一个玩家 ID 数组,我想平均随机地分成 X 个组,但是当数字是奇数时,第 1 组需要是具有少量部分的子数组:比如这个例子:
- 玩家 ID:[1,2,3,4,5,6,7,8,9,10,11,12,13,14]
- 组数:3
- 预期结果:[14,12,2,1]、[3,4,8,13,11]、[5,6,7,9,10]
我遇到偶数比较容易的情况,但我不知道如何实现这种情况。我需要一些帮助才能知道该怎么做。
最佳答案
只需按顺序挑选玩家并将他们分配到组中即可。伪代码:
int nextGroup = noOfGroups - 1
while players is not empty
player = random entry in players
remove player from players
add player to group[nextGroup]
nextGroup--
if(nextGroup < 0)
nextGroup = noOfGroups - 1
loop
关于javascript - 将数字数组分成相等部分的子数组,并从给定的整数中随机化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39187606/