首页 > 解决方案 > 在javascript中生成随机数

问题描述

我正在使用这个函数来生成 1000 到 100 之间的随机数。但据我说,在 (max - min) + min,max- min = 900 和 min = 100 中,所以它不应该生成 900 到 100 之间的数字?但它返回大于 900 的数字也如何?我很困惑。并告诉如何检查随机函数生成的数字范围?有什么帮助吗?

  x = Math.floor(Math.random() * (1000 - 100) + 100);
  console.log(x);

标签: javascript

解决方案


随机数公式Math.random() * (max - min) + min是获得min和之间均匀分布数的正确公式max

max - min将为您提供要生成随机数的范围。所以在这种情况下1000 - 100会产生一个范围900

乘以Math.random()会给你一个范围内的随机数。因此,乘以后Math.random()产生.0.5450

最后,添加min回随机选择可确保您获得的数字在 和 的范围minmax

例如,如果我们替换我们得到的公式,则Math.random()生成如下。相反,如果产生then ,这是可能从范围中获得的最高随机数,但它仍然低于. 在这两种情况下,添加到结果可确保您获得的随机数在和0.010.01 * (1000 - 100) = 9 minMath.random()11 * (1000 - 100) = 900maxminmaxmin


推荐阅读