如何计算任意值之间的随机数呢
2014-11-02 16:53
267 查看
大家知道怎么计算1到10之间的随机数吗,下面听我道来,
首先:Math.random()这个方法就是计算随机数的返回大于等于0小于1的随机数,
Math.random()*10岂不是返回大于等于0返回小于10吗,但是他只能返回小于10的数,不能返回10,怎么办呢,我们在原来的函数上再加1就变成了Math.random()*10+1;此时就可以返回1到10的随机数了,但是我们返回的很多是小数,不符合要求,下面就用到了Math.floor()这个函数了,这个函数执行向下舍入,也就是说10.99经过Math.floor都是10,Math.ceil(是向上舍入)即使是10.00001,返回也是11,现在我们就求出来结果了,Math.floor(Math.random()*10+1);这样就能求出结果了;
那2到10之间的函数怎么办,直接上代码Math.floor(Math.random()*9+2);
那3到11呢,4到88呢,每次这样自己算也不是办法,下面给大家介绍个通用方法;
function selectfrom (lowValue,highValue){
var choice=highValue-lowValue+1;
return Math.floor(Math.random()*choice+lowValue);
}
然后直接调上面的方法就OK;
前篇博客太粗糙,幸得一园友指点,以后命名啥的都写规范了,欢迎大家留言讨论js
首先:Math.random()这个方法就是计算随机数的返回大于等于0小于1的随机数,
Math.random()*10岂不是返回大于等于0返回小于10吗,但是他只能返回小于10的数,不能返回10,怎么办呢,我们在原来的函数上再加1就变成了Math.random()*10+1;此时就可以返回1到10的随机数了,但是我们返回的很多是小数,不符合要求,下面就用到了Math.floor()这个函数了,这个函数执行向下舍入,也就是说10.99经过Math.floor都是10,Math.ceil(是向上舍入)即使是10.00001,返回也是11,现在我们就求出来结果了,Math.floor(Math.random()*10+1);这样就能求出结果了;
那2到10之间的函数怎么办,直接上代码Math.floor(Math.random()*9+2);
那3到11呢,4到88呢,每次这样自己算也不是办法,下面给大家介绍个通用方法;
function selectfrom (lowValue,highValue){
var choice=highValue-lowValue+1;
return Math.floor(Math.random()*choice+lowValue);
}
然后直接调上面的方法就OK;
前篇博客太粗糙,幸得一园友指点,以后命名啥的都写规范了,欢迎大家留言讨论js
相关文章推荐
- js计算任意值之间随机数的方法
- js计算任意值之间随机数的方法
- sql如何获取一个0-15之间的随机数(不包括0,15),而且必须带两位随机的小数
- php 如何计算两天之间相隔多少天
- 百度地图如何计算两点之间距离
- 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
- Android下如何计算两经纬点之间距离?
- 如何计算两个空间向量之间的转角
- 如何生成1-10之间不重复的随机数
- 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
- 百度地图如何计算两点之间距离
- 如何产生1-100之间的100个不重复的随机数
- 如何计算地球球面上两个坐标点之间的弧度
- [iPhone][cocoa] 如何计算两个日期之间的天数
- 讲解对于Java中如何计算日期之间的天数知识
- 百度地图如何计算两点之间距离
- [iPhone][cocoa] 如何计算两个日期之间的天数
- Java中如何计算日期之间的天数
- excel表格中如何计算两个日期之间的天数?
- 百度地图如何计算两点之间距离