码迷,mamicode.com
首页 > 编程语言 > 详细

在Javascript在特定范围生成随机数

时间:2017-11-29 23:36:57      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:cheng   ted   err   override   ide   tom   com   dom   生成   

 

Math.random() 在 0 ( 包含) 和 1 ( 不包含) 之间返回一个 Number 。 因此我们有一个这样的间隔:

[0....................................1) 

现在,我们想要一个介于 min ( 包含) 和 max ( 不包含) 之间的数字:

[0.................................... 1)
[min.................................max)

但是,首先,我们应该从第二个时间间隔中减去 min 来调整问题:

[0....................................1)
[min - min........................... max - min)

这给出了:

[0.................................... 1)
[0....................................max - min)

我们现在可以应用 Math.random,然后计算。 让我们选择一个随机数:

 Math.random()
 |
[0.................................... 1)
[0.................................... max - min)

因此,我们需要:

x = Math.random() * (max - min);

不要忘记加上 min,这样我们在[ min,max ) 中得到一个数字:

x = Math.random() * (max - min) + min;

 第二个,返回 min 和 max 之间的整数,两者都包含。

现在,为了获得整数,你可以使用 roundceil 或者 floor 。

你可以使用 Math.round(Math.random() * (max - min)) + min 但是,有可能我想要的范围是[2, 5) , 然后Math.random() * (max - min) 出来的最大值是4.6, 但是Math.round ( ) 四舍五入就变成了最大值为5。

所以,使用 Math.floor( Math.random()*(max-min) ) + min 

 

转自 

http://blog.leanote.com/post/dujuncheng/%E5%9C%A8Javascript%E5%9C%A8%E7%89%B9%E5%AE%9A%E8%8C%83%E5%9B%B4%E7%94%9F%E6%88%90%E9%9A%8F%E6%9C%BA%E6%95%B0%EF%BC%9F

在Javascript在特定范围生成随机数

标签:cheng   ted   err   override   ide   tom   com   dom   生成   

原文地址:http://www.cnblogs.com/chenxuyangbk/p/7923131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!