Home >Web Front-end >JS Tutorial >JS generates random numbers within a certain range [detailed explanation of four situations]_javascript skills

JS generates random numbers within a certain range [detailed explanation of four situations]_javascript skills

WBOY
WBOYOriginal
2016-05-16 15:04:281636browse

Foreword:

JS does not have a ready-made function that can directly generate random numbers in a specified range.

But it has a function: Math.random() This function can generate a random number in [0,1).

Using it, we can generate random numbers within a specified range.

When it comes to range, there is a problem of boundary values. This includes four situations:

1) min ≤ r ≤ max (generally this is more common)

2) min ≤ r < max

3) min < r ≤ max

4) min < r < max

1. min ≤ r ≤ max

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

2. min ≤ r < max

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

3. 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;
}

4. 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;
      }
 }

The above article about JS generating random numbers in a certain range [detailed explanation of four situations] is all the content shared by the editor. I hope it can give you a reference, and I hope you will support Script Home more.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn