JavaScriptが指定範囲の乱数とランダムシーケンスを生成する方法

3143 ワード

JavaScriptではMath.random()法をよく用いて乱数を生成しますが、この方法で生成される乱数は0-1の間の乱数だけです.まず次のような常用方法の特徴を見ます.
•1.Math.random()結果は0-1間の乱数です.0を含み、1を含みません.
•2.Math.flor(num);パラメータnumは数値であり、関数結果はnumの整数部分である.整数を取るパーパーミッション(num)方法と同じです.
•3.Math.round(num);パラメータnumは数値で、関数結果はnum四捨五入後の整数です.
•4.Math.ceir(num)n以上の最小整数を返します.
上記の方法を合理的に使用して指定範囲の乱数を生成する.
最小値を含めて最大値を含まない場合:
パーパーネt(num)を整理して、入ってきたnumを小さな整数に変換します.最大と最小の差をMath.randowm()に乗算し、parseIntで処理する(この場合の範囲は「0-差分値」と注意する).さらに最小値を加えると、最小値を含むが最大値を含まない整数が得られる.
 最小値を含む最大値を含まない乱数を取得するには、次の関数で行います.

function getRandom1(start, end) {
      var length = end - start;
      var num = parseInt(Math.random() * (length) + start);
      return num;
    }
最大値を含むが、最小値を含まない場合:Math.ceil(num)は、numに等しい最小の整数を取得する.つまり、入ってきたnumを大きな整数に変換する.Math.random()に最大と最小の差を乗算し、Math.ceir()で処理する(このときの範囲は(0−差分値)であることに注意する).を選択します.最小値を加えると、最小値を含まない最大値を含む整数が得られます.つまり、上記の場合のパースIntをMath.ceirlに変更します.
最大値を含むが、最小値を含まない乱数を取得するには、次の関数で行います.

 function getRandom1(start, end) {
    var length = end - start;
    var num = Math.ceil(Math.random() * (length) + start);
    return num;
  }
最大値と最小値が含まれている場合:
最大値と最小値の両方が含まれています.この場合、取得可能範囲は上記の2つに比べて1を拡大しました.乱数生成段階では、可能性のある乱数を生成する範囲を1だけ拡大します.parseIntを使用して小さい値に調整してもいいです.Math.ceir(num)で大きな値に変換してもいいです.を選択します.いずれにしても、乱数段階を生成して範囲を1.
parseIntを採用する方法

function getRandom1(start, end) {
    var length = end - start + 1;
    var num = parseInt(Math.random() * (length) + end);
    return num;
  }
--------------------------------------------------
乱数の生成だけでは足りない場合もありますが、指定された範囲の数値をランダムに順番に並べます.この問題を乱数に変換して行列に参加し、重複を避けることができます.循環順に生成される数はランダムで、順番に配列に加えて、数値の大きさのランダムな配列を実現します.
指定範囲の乱数シーケンスを生成します.
ランダム・シーケンスは、直接にソト順序法によって実現され、順序順に配列された数字要素のセットを含み、ソト法を呼び出し、関数を介してランダムに生成された値(正の場合は負の可能性がある)に入ると、順序を乱すことができ、配列のランダム・シーケンスが得られる.
getNum()は、数字1-10の順に配列された配列を返します.その結果得られたnumarは、1-10のランダムシーケンスです.

  var numArr = getNum().sort(function () {
        return Math.random() - 0.5;
      });
自分で論理を書いてランダムなシーケンスを生成することも可能です.
乱数を格納する配列を定義し、ランダム数を循環的に生成し、既存の配列で検索します.存在する場合、falseと表記して生成された乱数を繰り返すことで、マーク値に基づいて配列に参加するかどうかを決定します.配列が成功すると、配列下の標示index(配列要素の個数を表します.)増加してから条件を満たしてサイクルを終了します.以下の例では5-10間のランダムシーケンス(以下の例は左右に含まれます)を実現します.

function getOrder(start, end) {
      var length = end - start;
      var myorder = new Array();
      var index = 0;
      while (index < length+1) {
        var flag = true;
        var num = parseInt(Math.random() * (length + 1));
        for (var i in myorder) {
          if (myorder[i] == num) {
            flag = false;
          }
        }
        if (flag == true) {
          myorder[index] = num;
          index++;
        }
      }
      alert(myorder.length);
      alert(myorder);
    }
getOrder(5, 10);
締め括りをつける
以上は小编で绍介したJavaScriptが指定された范囲の乱数と乱数列を生成します.皆さんに助けてほしいです.もし何か疑问があれば、メッセージをください.小编はすぐに返事します.