重複の可能性:
特定の範囲で Javascript で乱数を生成していますか?
たとえば 4 の長さを入力した場合、0 から 9999 までの数値を返す必要があります。
そして、0パディング(0004)にしたいのですが、それは別の機能かもしれません。
重複の可能性:
特定の範囲で Javascript で乱数を生成していますか?
たとえば 4 の長さを入力した場合、0 から 9999 までの数値を返す必要があります。
そして、0パディング(0004)にしたいのですが、それは別の機能かもしれません。
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
function getRandom(c){
var r = (Math.random() * Math.pow(10, c)).toFixed(0);
while(r.length != c)
r = "0" + r;
return r;
}
getRandom(3);
さて、ここに番号の部分があります。あなたはおそらくパディング部分を理解することができます。
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;
}
これは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;
}
ちょっとずさんですが動作します:
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);
これを試して:
function getNumber(range){
var max = Math.pow(10,range);
var num = Math.Random() * max;
}
については、ネイサンが彼のコメントで提案したことを試したほうがよいでしょzerofill
う