在javascript中创建一个数字字符串,每个数字都在一个限制内

在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(""); 本质上,

如何使用javascript随机创建一个20位数的数字字符串,每个数字的范围仅在1到5之间


例如: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这个词,但是标签还不够吗?我肯定会使用你在答案中包含的想法。