ホームページ >ウェブフロントエンド >jsチュートリアル >JSのランダム生成数値とシーケンスメソッドを詳しく解説

JSのランダム生成数値とシーケンスメソッドを詳しく解説

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-07 17:00:141645ブラウズ

今回は、JS の数値とシーケンスのランダム生成について詳しく説明します。JS の数値とシーケンスのランダム生成に関する 注意点 について、実際のケースを見てみましょう。

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

•2.Math.floor(num); パラメータ num は数値です。 結果は 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 サイトの他の関連記事に注目してください

推奨読書:

これは call と apply の使用方法を示しています

の詳細な説明インストールと使用が少なくなります

以上がJSのランダム生成数値とシーケンスメソッドを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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