ホームページ  >  記事  >  ウェブフロントエンド  >  JSを使って指定範囲の乱数と乱数列を生成する方法を詳しく解説

JSを使って指定範囲の乱数と乱数列を生成する方法を詳しく解説

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-12 14:00:253614ブラウズ

今回はJSで指定範囲の乱数や乱数列を生成する方法について詳しく解説していきます。 JSを使って指定範囲の乱数や乱数列を生成する際の注意点は何ですか?実際のケースを見てみましょう。

JavaScriptでは、よくMath.random()メソッドを使って乱数を生成しますが、このメソッドで生成される乱数は0から1までの乱数のみです。まず、よく使用される次のメソッドの特徴を見てみましょう:

•1.Math.random(); 結果は 0 ~ 1 (0 を含み、1 を除く) の乱数になります

•2.Math.floor( num); パラメータ num は数値であり、

functionresult は num の 整数 の部分です。整数を取得するための parseInt(num) メソッドと同じです。

•3.Math.round(num); パラメータ num は数値であり、関数の結果は num を四捨五入した後の整数になります。

•4.Math.ceil(num); n 以上の最小の整数を返します。

上記の方法を合理的に使用して、指定された範囲で乱数を生成します:

最大値ではなく最小値を含みます:

parseInt(num) は、受信した num を丸め、小さな整数に変換します。 Math.random()に最大値と最小値の差を乗算し、parseIntで処理(このときの範囲は[0-差分]であることに注意)し、最小値を加算すると、最小値は得られますが、最小値は得られません。最大の整数値。

最小値を含むが最大値を含まない乱数を取得します。次の関数を使用して実装します:

function getRandom1(start, end) {
      var length = end - start;
      var num = parseInt(Math.random() * (length) + start);
      return num;
    }
最大値を含むが最小値は含まない:

or より大きい最小の整数を取得します。 num に等しい、つまり、num を大きな整数に変換して渡します。 Math.random()に最大値と最小値の差を乗算し、Math.ceil()で処理し(このときの範囲は(0-差分]であることに注意)、最小値を加算すると最小値が得られます。整数の最小値を除く値、つまり、最小値を含まない最大値を含む乱数を取得するには、上記の場合の parseInt を Math.ceil()Math.ceil(num)

に変更します。

 function getRandom1(start, end) {
    var length = end - start;
    var num = Math.ceil(Math.random() * (length) + start);
    return num;
  }
最大値と最小値の両方が含まれる状況:

最大値と最小値の両方が含まれるこのとき、取り得る値の範囲は によって拡張されています。 1 上の 2 つの状況と比較すると、乱数の生成段階では、使用できる乱数の範囲を 1 だけ拡張する必要があります。parseInt を使用して小さい値に丸めるか、Math.ceil(num) を使用することができます。大きな値に変換するには (変換後に -1 が必要です)、どの方法を使用する場合でも、重要なのは乱数生成段階で範囲に 1 を加算することです

parseInt メソッドを使用します

function getRandom1(start, end) {
    var length = end - start + 1;
    var num = parseInt(Math.random() * (length) + end);
    return num;
  }
---。 -------------------------------------- ----------- -------------------------

場合によっては、乱数を生成するだけでは十分ではなく、この問題を乱数を生成し、重複を避けるために配列に追加することで、数値のランダムな配置を実現します。

指定された範囲で乱数シーケンスを生成します。

ランダム シーケンスは、順序どおりに配置された数値要素のセットを含むグループを介して直接実装でき、sort メソッドを呼び出し、関数 By を渡します。ランダムに生成された値 (正または負の場合があります) を渡すと、順序をスクランブルして、配列のランダムなシーケンスを取得できます。 getNum() は、順序どおりに配置された 1 ~ 10 の数値の配列を返します。 取得された numArr はランダムです。 1 ~ 10 のシーケンス:

  var numArr = getNum().sort(function () {
        return Math.random() - 0.5;
      });
ランダム シーケンスを生成する独自のロジックを作成することも可能です。

乱数を格納する配列を定義し、生成後、既存の配列を検索して乱数を生成します。存在する場合、マークを false に変更すると、生成された乱数が繰り返されることを示し、マークの値は配列への追加が成功した場合に配列のインデックス (配列を示します) を決定するために使用されます。配列要素の数) がインクリメントされ、以下の

ループを終了するための条件が満たされます。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);

はマスターできたと思います。この記事の事例を読んだ後、さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事にご注目ください

推奨読書:

Vue で個人情報を表示しパスワードを変更する方法

分析Vue データ応答性の原則の説明

以上がJSを使って指定範囲の乱数と乱数列を生成する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。