javascript - 在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);
解决方案
随机数公式Math.random() * (max - min) + min
是获得min
和之间均匀分布数的正确公式max
。
max - min
将为您提供要生成随机数的范围。所以在这种情况下1000 - 100
会产生一个范围900
。
乘以Math.random()
会给你一个范围内的随机数。因此,乘以后Math.random()
产生.0.5
450
最后,添加min
回随机选择可确保您获得的数字在 和 的范围min
内max
。
例如,如果我们替换我们得到的公式,则Math.random()
生成如下。相反,如果产生then ,这是可能从范围中获得的最高随机数,但它仍然低于. 在这两种情况下,添加到结果可确保您获得的随机数在和0.01
0.01 * (1000 - 100) = 9
min
Math.random()
1
1 * (1000 - 100) = 900
max
min
max
min
推荐阅读
- javascript - 从计算器更新数据 - NodeJS + AngularJS
- c# - c# how to place cursor at postion in richtextbox
- javascript - 相互依赖的链式提取
- c++ - C++ 线程错误:没有名为 'type' MINGW 的类型
- bash - 使用 bash 和 awk 从多个网站中提取 IP
- javascript - 单击时想要图像周围的边框,第二次单击后删除边框
- c# - Visual Studio 停止运行我的代码,并指向一行(没有错误)
- java - SpringBoot 休息服务错误处理
- node.js - Mongoose Population 不工作只返回 [Object] 而不是字段
- java - 无法将 int 添加到 ArrayLists 的 ArrayList