今回は、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; }
それより大きい最小の整数を取得します。 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; }
function getRandom1(start, end) { var length = end - start + 1; var num = parseInt(Math.random() * (length) + end); return num; }
指定された範囲で乱数シーケンスを生成します。 ランダム シーケンスは、順番に配置された一連の数値要素を含むグループを介して直接実装でき、sort メソッドを呼び出し、関数を使用します。ランダムに生成された値 (正または負の場合があります) の場合、順序をスクランブルして、配列のランダムなシーケンスを取得できます。 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 サイトの他の関連記事に注目してください
推奨読書:
以上がJSで範囲ランダム化とシーケンスランダム化を生成する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。