Math.random的生成结果是一个double型数据,其区间下限为0.0,上限为无限接近1.0。即[0,1)。
二、需求获取某区间内随机数。
三、方法使用Math下的random随机数生成函数。
四、区间值实际应用 4.1浮点型 4.1.1[0,1)代码如下:
function frandom(){
return Math.random()
}
4.1.2[0,n)
代码如下:
function frandom(n){
return Math.random()*n
}
4.1.3[m,n)
代码如下:
function frandom(m,n){
return m+Math.random()*(n-m)
}
4.2整型-[x,y]
4.2.1[0,1]
代码如下:
function frandom(){
return Math.floor(Math.random()*2)
}
4.2.2[0,n]
代码如下:
function frandom(n){
return Math.floor(Math.random()*(n+1))
}
4.2.3[m,n]
代码如下:
function frandom(m,n){
return Math.floor(m+Math.random()*(n-m+1))
}
4.3整型-[x,y)
4.3.1[0,1)
代码如下:
function frandom(){
return Math.floor(Math.random())
}
4.3.2[0,n)
代码如下:
function frandom(n){
return Math.floor(Math.random()*n)
}
4.3.3[m,n)
代码如下:
function frandom(m,n){
return Math.floor(m+Math.random()*(n-m))
}
4.4整型-(x,y]
4.4.1(0,1]
代码如下:
function frandom(){
return Math.floor(Math.random()+1);
}
4.4.2(0,n]
代码如下:
function frandom(n){
return Math.floor(Math.random()*n+1);
}
4.4.3(m,n]
代码如下:
function frandom(m,n){
return Math.floor(m+Math.random()*(n-m)+1);
}
4.5整型-(x,y)
4.5.1(0,1)
代码如下:
function frandom(){
return undefined;
}
4.5.2(0,n)
代码如下:
function frandom(n){
return Math.floor(1+Math.random()*(n-1));
}
4.5.3(m,n)
代码如下:
function frandom(m,n){
return Math.floor(m+1+Math.random()*(n-m-1));
}
五、总结
由于端点的特殊性,因此为了匹配random的生成机制[0,,1),确保概率理论上尽可能稳定,仅使用Math.floor限制整型数据。至于为什么不用ceil或round,在文章“【python】关于Math.floor、Math.ceil以及Math.round应用在随机数中的区别分析_Evenurs的博客-CSDN博客”中分析。
附录 测试用html5源码
Simulate Tools-By_Even-2022-7-25
仿真器
工具1
工具2
工具3
| 刷新次数 |
|---|



