所以我有一个循环随机次数的 for 循环:
for(var i = 0; i<Math.floor(Math.random()*100); i++){
var num = i
}
这有效,但似乎偏低。只需运行几次“num”似乎永远不会返回任何超过 20 的值。将我们的域更改为 Math.random()*1000 似乎不会返回任何超过 40 的值。
这只是一些乱七八糟的事情,所以不需要任何实际工作,只是想知道解释。
这里有一个工作代码的快速链接来测试你自己:http://jsfiddle.net/Lv45r/1/
最佳答案
在您的版本中,每个循环都会生成一个新的随机数。这导致偏向于较低的数字。要解决此问题,请先创建您的号码,然后循环:
for(var i = 0, max=Math.floor(Math.random()*100); i<max; i++){
var num = i
}
或
var max = Math.floor(Math.random()*100);
for(var i = 0; i<max; i++){
var num = i
}
关于javascript - 随机长度 For 循环仅生成低数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15454336/