如何使用javascript随机创建一个20位数字的数字,每个数字的范围仅为1到5?
一个例子是:52431425331425141521
答案 0 :(得分:3)
除了我在上面的评论中给出的逻辑算法,你可以使用这个单行:
var result = Math.floor(Math.random()*95367431640625).toString(5)
.split("").map(function(n) {return +n+1;}).join("");
基本上,选择0到5之间的随机整数 20 -1,将其转换为基数5,然后将所有数字递增1,所以它们都在1到5之间^ _ ^
编辑:刚刚意识到这不会很好地处理低数字。试试这个:
var result = (
new Array(20).join("0")
+
Math.floor(Math.random()*95367431640625).toString(5)
).slice(-20).split("").map(function(n) {return +n+1;}).join(""));
这基本上是相同的,除了它在你的数字的前面加上19个零,然后切掉最后20个字符。这将允许它正确处理前导零,在所有情况下都给出一个20位数字。
答案 1 :(得分:2)
您可以使用:
function random_string()
{
var text = "";
var string = "12345";
for( var i=0; i < 20; i++ )
text += string.charAt(Math.floor(Math.random() * string.length));
return text;
}
random_string();