代码之家  ›  专栏  ›  技术社区  ›  Justin Arnold

范围内的随机数不是随机数

  •  0
  • Justin Arnold  · 技术社区  · 2 年前

    我一直在尝试生成100万到1000万之间的随机数,但发现生成的数都不低于100万。我写这段代码是为了测试这个问题。该代码选择1000万个介于1到1000万之间的随机数,并输出最小的数。我希望得到至少100-1000范围内的东西,但它;它总是至少有100万。我错过了什么?

    JSFiddle: https://jsfiddle.net/vhLoqz8g/

    var lowest=10000000;
    for (let i = 0; i < 10000000; i++) {
      var g=Math.floor(Math.random() * (10000000 - 1 + 1)) + 1;
      if (g<lowest)
      {
      lowest=g;
      }
    }
    
    document.write(g);
    1 回复  |  直到 2 年前
        1
  •  0
  •   Carsten Massmann    2 年前

    你应该输出 lowest 而不是 g 在循环结束时:

    var lowest=1e8;
    for (let i = 0; i < 1e7; i++) {
      var g=Math.floor(Math.random()* 1e7) + 1;
      if (g<lowest) lowest=g;
    }
    
    console.log(lowest)