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-差分値」と注意する).さらに最小値を加えると、最小値を含むが最大値を含まない整数が得られる.
最小値を含む最大値を含まない乱数を取得するには、次の関数で行います.
最大値を含むが、最小値を含まない乱数を取得するには、次の関数で行います.
最大値と最小値の両方が含まれています.この場合、取得可能範囲は上記の2つに比べて1を拡大しました.乱数生成段階では、可能性のある乱数を生成する範囲を1だけ拡大します.parseIntを使用して小さい値に調整してもいいです.Math.ceir(num)で大きな値に変換してもいいです.を選択します.いずれにしても、乱数段階を生成して範囲を1.
parseIntを採用する方法
乱数の生成だけでは足りない場合もありますが、指定された範囲の数値をランダムに順番に並べます.この問題を乱数に変換して行列に参加し、重複を避けることができます.循環順に生成される数はランダムで、順番に配列に加えて、数値の大きさのランダムな配列を実現します.
指定範囲の乱数シーケンスを生成します.
ランダム・シーケンスは、直接にソト順序法によって実現され、順序順に配列された数字要素のセットを含み、ソト法を呼び出し、関数を介してランダムに生成された値(正の場合は負の可能性がある)に入ると、順序を乱すことができ、配列のランダム・シーケンスが得られる.
getNum()は、数字1-10の順に配列された配列を返します.その結果得られたnumarは、1-10のランダムシーケンスです.
乱数を格納する配列を定義し、ランダム数を循環的に生成し、既存の配列で検索します.存在する場合、falseと表記して生成された乱数を繰り返すことで、マーク値に基づいて配列に参加するかどうかを決定します.配列が成功すると、配列下の標示index(配列要素の個数を表します.)増加してから条件を満たしてサイクルを終了します.以下の例では5-10間のランダムシーケンス(以下の例は左右に含まれます)を実現します.
以上は小编で绍介したJavaScriptが指定された范囲の乱数と乱数列を生成します.皆さんに助けてほしいです.もし何か疑问があれば、メッセージをください.小编はすぐに返事します.
•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が指定された范囲の乱数と乱数列を生成します.皆さんに助けてほしいです.もし何か疑问があれば、メッセージをください.小编はすぐに返事します.