-1

重複の可能性:
特定の範囲で Javascript で乱数を生成していますか?

たとえば 4 の長さを入力した場合、0 から 9999 までの数値を返す必要があります。

そして、0パディング(0004)にしたいのですが、それは別の機能かもしれません。

4

6 に答える 6

1
for(var x = 5, i = 0, y = ""; i < x​;​ ++i, y +​​= "9");
Math.floor(Math.random()*parseInt(y)); //random number

forループでは、xが入力の長さになります。必要に応じて、xの定義をループの外に移動することもできます。

これを試して、どちらがより速く実行されるかを確認することもできます(おそらく最初のもの、fyi):

for(var x = 5, y = "", i = 0; i < x; ++i, y += Math.floor(Math.random()*9));
parseInt(y); //random number
于 2012-08-10T19:43:50.200 に答える
1
function getRandom(c){
    var r = (Math.random() * Math.pow(10, c)).toFixed(0);
    while(r.length != c)
        r = "0" + r; 
    return r;
}

getRandom(3);
于 2012-08-10T19:55:02.610 に答える
0

さて、ここに番号の部分があります。あなたはおそらくパディング部分を理解することができます。

function makeNumber(number){
    var nines = "";
    var returnNumber = "";
    for(var i = 0; i < number; i++)
    {
         nines+= "9";  
    }
    for(var i = 0; i < number; i++)
    {
        var returnNumber += String(Math.Random() * parseInt(nines));
    }
    return returnNumber;
}
于 2012-08-10T19:48:54.117 に答える
0

これはjavascriptであるため、このシナリオでは弱い型付けを利用することをお勧めします。これを行うための特定のハッカー的な方法の1つは、0〜9のn個の数値を生成し、文字列の連結を使用することです。

この投稿には答えがあるようです:すべての場合に5桁の数字を生成するJavaScript式で あり、連結で埋めることができます。

編集:これが私の実装です:

function random(x){
  var rand = Math.floor(Math.random() * Math.pow(10,x));
  var dummy = rand;
  while (dummy<Math.pow(10,x-1)){
    rand = "0" + rand;
    dummy = dummy*10;
  }
  return rand;
}
于 2012-08-10T19:43:14.003 に答える
0

ちょっとずさんですが動作します:

var length = 4; //<-- or get however you want
var big = "";
for (i=0; i<length; i++) {
    big = big + "9";
}
var big = parseInt(big);
var random = Math.floor(Math.random() * big).toString();
var random_len = random.toString().length;
if (random_len < length) {
    var random_padded = random.toString()
    padding = length - random_len;
    for (i=0; i<padding; i++) {
        random_padded = "0" + random_padded;
    }
    random = random_padded
}
alert(random);
于 2012-08-10T20:02:37.580 に答える
0

これを試して:

function getNumber(range){
var max = Math.pow(10,range);

var num = Math.Random() * max;
}

については、ネイサンが彼のコメントで提案したことを試したほうがよいでしょzerofill

于 2012-08-10T19:46:52.430 に答える