javascript - 随机长度 For 循环仅生成低数字

标签 javascript loops random for-loop

所以我有一个循环随机次数的 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/

相关文章:

javascript - mouseup 事件并不总是被触发

c - 彩票游戏,从 1 到 42 中选择唯一的号码

parsing - 创建Brainfuck解析器,解析循环运算符的最佳方法是什么?

c++ - 如何从随机数中取一个名字?

random - Mersenne Twister 是一个好的二元 RNG 吗?

javascript - 拦截所有ajax调用?

javascript - 显示绑定(bind)到动态生成元素的所有事件处理程序?

javascript - 需要一些关于如何 BDD 一个简单的 url 解析器函数的建议

c - 在嵌套 for 循环中间出现段错误

Python:舍入误差扭曲了均匀分布