【发布时间】:2013-10-17 03:54:30
【问题描述】:
我想要一些 javascript,它可以让我生成 4 个随机数,这些数字加起来等于某个值,例如
如果
max = 20
然后
num1 = 4
num2 = 4
num3 = 7
num4 = 5
或
max = 36
然后
num1 = 12
num2 = 5
num3 = 9
num4 = 10
到目前为止我所拥有的是......
var maxNum = 20;
var quarter;
var lowlimit;
var upplimit;
var num1 = 1000;
var num2 = 1000;
var num3 = 1000;
var num4 = 1000;
var sumnum = num1+num2+num3+num4;
quarter = maxNum * 0.25;
lowlimit = base - (base * 0.5);
upplimit = base + (base * 0.5);
if(sumnum != maxNum){
num1 = Math.floor(Math.random()*(upplimit-lowlimit+1)+lowlimit);
num2 = Math.floor(Math.random()*(upplimit-lowlimit+1)+lowlimit);
num3 = Math.floor(Math.random()*(upplimit-lowlimit+1)+lowlimit);
num4 = Math.floor(Math.random()*(upplimit-lowlimit+1)+lowlimit);
}
【问题讨论】:
-
到目前为止你有什么?如果您有一些代码但不能正常工作或尚未完成,我们会为您提供帮助,但我们不会为您编写。
-
您不能有 4 个随机数合计为预定值。如果你有 3 个随机数和总数,那么第 4 个不是随机数。
-
提示:生成一个介于 1 和 max-3 之间的随机数 r1,然后生成另一个介于 1 和 max-2-r1 之间的随机数 r2,然后再生成一个介于 1 和 max-1-r1-r2 之间的随机数 r3 .剩下的数必须是max和其他三个数之差
-
@ChrisC 这不太对。如果我在 0 和 1 之间选择一个随机浮点数,那么 1-p 将与 p 一样随机。
-
对不起,你是对的。我希望他们是 iid,但 OP 没有要求。
标签: javascript random numbers generator