JS生成某个范围的随机数【四种情况详解】

来源:互联网 发布:伊利丹7.3知乎 编辑:程序博客网 时间:2024/06/05 23:54

JS没有现成的函数,能够直接生成指定范围的随机数。

但是它有个函数:Math.random()  这个函数可以生成 [0,1) (包括0,不包括1)的一个随机数。

利用它,我们就可以生成指定范围内的随机数。

而涉及范围的话,就有个边界值的问题。这样就包含四种情况:

1)min ≤ r ≤ max  (一般这种比较常见)

2)min ≤ r < max

3) min < r ≤ max

4)min < r < max

一、min ≤ r ≤ max

function RandomNumBoth(Min,Max){      var Range = Max - Min;      var Rand = Math.random();      var num = Min + Math.round(Rand * Range); //四舍五入      return num;}

二、min ≤ r < max

function RandomNum(Min, Max) {      var Range = Max - Min;      var Rand = Math.random();      var num = Min + Math.floor(Rand * Range); //舍去      return num;}

三、min < r ≤ max

function RandomNum(Min, Max) {      var Range = Max - Min;      var Rand = Math.random();      if(Math.round(Rand * Range)==0){               return Min + 1;      }      var num = Min + Math.round(Rand * Range);      return num;}

四、min < r < max 

function RandomNum(Min, Max) {      var Range = Max - Min;      var Rand = Math.random();      if(Math.round(Rand * Range)==0){        return Min + 1;      }else if(Math.round(Rand * Max)==Max)      {        index++;        return Max - 1;      }else{        var num = Min + Math.round(Rand * Range) - 1;        return num;      } }