固定长度的随机数

问题描述 投票:5回答:5

我想生成一个随机整数,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个(

请帮忙!

javascript random
5个回答
13
投票
   function genRand() {
      return Math.floor(Math.random()*89999+10000);
   }

8
投票

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


2
投票

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

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

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

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


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位数的随机数


1
投票

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

function rand(digits) {
    return Math.floor(Math.random()*parseInt('8' + '9'.repeat(digits-1))+parseInt('1' + '0'.repeat(digits-1)));
}
© www.soinside.com 2019 - 2024. All rights reserved.