在javascript中创建一个数字字符串,每个数字都在一个限制内
如何使用javascript随机创建一个20位数的数字字符串,每个数字的范围仅在1到5之间在javascript中创建一个数字字符串,每个数字都在一个限制内,javascript,Javascript,如何使用javascript随机创建一个20位数的数字字符串,每个数字的范围仅在1到5之间 例如:52431425331425141521以及我在上面的评论中给出的逻辑算法,您可以使用以下一行: var result = Math.floor(Math.random()*95367431640625).toString(5) .split("").map(function(n) {return +n+1;}).join(""); 本质上,
例如:52431425331425141521以及我在上面的评论中给出的逻辑算法,您可以使用以下一行:
var result = Math.floor(Math.random()*95367431640625).toString(5)
.split("").map(function(n) {return +n+1;}).join("");
本质上,选择一个介于0和520-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位数字。您可以使用以下方法:
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();
选择一个介于1和5之间的随机数。然后再选一个。还有一个。等等把他们都连在一起。完成!你知道如何得到一个介于1和5之间的随机数吗?在一个循环中做20次并连接它们。你已经在你的问题中做过了:52431425331425141521我不确定为什么我的问题被否决了,因为它至少对两个贡献者有意义。我怎么问得不好?我在问题中添加了javascript这个词,但是标签还不够吗?我肯定会使用你在答案中包含的想法。