固定长度的随机数

时间:2011-12-12 14:52:18

标签: javascript random

我想生成一个0-9个数字且长度为5的随机整数。我试试这个:

function genRand(min,max) {
    for (var i = 1; i <= 5; i++) {
        var range = max - min + 1;
        return Math.floor(Math.random()*range) + min;
    }
}

并致电:

genRand(0,9);

但它总是返回1个数字,而不是5(

请帮忙!

5 个答案:

答案 0 :(得分:13)

   function genRand() {
      return Math.floor(Math.random()*89999+10000);
   }

答案 1 :(得分:8)

return退出第一个循环的函数。

答案 2 :(得分:2)

最小的5位数字是10000,最大的是99999,或10000 + 89999。

返回0到89999之间的随机数,并将其添加到最小值。

var ran5=10000+Math.round(Math.floor()*90000)

Math.floor向下舍入,Math.random大于或等于0且小于1。

答案 3 :(得分:1)

要获得一个5位数的随机数,会在范围(10000,99999)之间生成随机数。或者随机生成5个单位并粘贴它们。

修改

您显示的过程只会生成一个数字并返回给调用者。可能有效的思考是(伪代码):

int sum = 0;
int m = 1;
for (i=0;i<5;i++)
{
  sum = sum  + m * random (0, 9);
  /*       or                  */
  sum = sum * m + random (0, 9);
  m = m * 10;
}

或者更好地使用rand (10000, 99999)

生成5位数的随机数

答案 4 :(得分:1)

这是Nate B答案的更为通用的版本:

function rand(digits) {
    return Math.floor(Math.random()*parseInt('8' + '9'.repeat(digits-1))+parseInt('1' + '0'.repeat(digits-1)));
}