2

在我的程序中,我想生成 5 位随机数,例如仅包含数字(1 到 7)的随机数。

var randnum = Math.floor(Math.random() * (11111 - 77777 + 1)) + 11111;

使用上面的代码,我得到了 和 之间的11111数字77777。但是如何生成不包含的数字0,8,9 呢?是否有任何默认方法来生成这种数字?

4

2 回答 2

2

您可以一次生成每个数字,将它们连接起来,然后 parseInt 得到你的结果:

var str = '';
for (var i=0; i<5; i++) {
  str += Math.floor(Math.random()*7) + 1;
}
var randnum = parseInt(str);

演示

解释

Math.random()返回 [0,1)

Math.random() * 7返回 [0,7)

Math.floor(...)返回 0,1,2,3,4,5,6

...+1返回 1,2,3,4,5,6,7

于 2013-09-26T08:00:57.573 回答
1

例如,

digits = [1,2,3,4,5,6,7]
len = 5
num = 0
while(len--)
    num = num * 10 + digits[Math.floor(Math.random() * digits.length)]
console.log(num)

这样,您可以轻松选择要使用的数字。

于 2013-09-26T08:03:37.187 回答