javascript - 将数字数组分成相等部分的子数组,并从给定的整数中随机化

标签 javascript arrays algorithm math

为了更清楚,我有一个玩家 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/

相关文章:

javascript - 处理弹出窗口关闭的正确方法

javascript - JS按数组中的 "x"排序对象

javascript - 如何将 Promise 上下文中 Uncaught Error 传播到 window.onerror?

java - CountSort 数组超出索引

javascript - VueJS $watch $refs

javascript - 如何从第二个索引开始运行 .map() ?

javascript - 循环遍历Array并且只接收特定数据

algorithm - A*算法如何应用于旅行商问题?

arrays - 如何生成多个数组的所有排列/组合?

python - 1 函数 prim 的算法 python