【发布时间】:2018-10-28 13:05:33
【问题描述】:
我想将10 拆分为一个由 4 个随机数组成的数组,但两者都不能是 0 或高于 4。例如[1,2,3,4]、[1,4,4,1] 或[4,2,3,1]。
我认为这是一个简单的问题,但由于某种原因,我想不出该怎么做。如果有人有一些非常有帮助的指导!
编辑: 这是我现在拥有的代码,但我也生成了一个小于 10 的总数:
let formation = [];
let total = 0;
for (let i = 0; i < 4; i ++) {
if (total < 9) {
formation[i] = Math.floor(Math.random() * 4) + 1;
} else {
formation[i] = 1;
}
}
【问题讨论】:
-
一个需求不清楚,到目前为止你尝试过什么?
-
计算有效组合 - 很少 - 随机选择一个:p
-
会一直是 10 吗?如果是的话,正如@JaromandaX 所提到的,组合很少。您可以定义所有组合,然后随机选择一个。
-
你可能想实现一个Partition函数,然后过滤掉所有大于4的分区。
-
模棱两可的问题。
[1,2,3,4]和[4,2,3,1]与 [4,3,2,1]. Do you need[4,4,1,1]` 和[1,4,4,1]基本相同......?
标签: javascript arrays algorithm math random