生成具有给定变量的随机字符串

时间:2019-10-23 14:02:07

标签: javascript

所以我的任务是生成其中包含k个单词的随机字符串,单词字母计数从m(min)和n(max)中随机分配。

实际上,我已经做了所有事情,我只是不明白为什么Math.random()函数每次都给出相同的数字,这就是为什么随机单词计数不起作用的原因,它总是在每个字母中都使用相同的字母计数k字。

这是我的代码:

// Random string with more given variables
function randomStringIntermediate(){
    var m = parseInt(prompt("How many random letters in a word(min)"));
    var n = parseInt(prompt("How many random letters in a word(max)"));
    var k = parseInt(prompt("How many words in a string"));
    var letters = ("abcdefghijklmnopqrstuvwxyz");
    var p = document.getElementById("p9");
    var word = "";
    for(j = 0; j < k; j++){
        word += " "
        for(i = 0; i < (Math.floor(Math.random()) + m) * (n-m); i++){
            var letter =  letters.charAt(Math.random() * letters.length);
            word += letter;
        }
    }
    p.innerHTML = word;
}

2 个答案:

答案 0 :(得分:1)

只需更改

(Math.floor(Math.random()) + m) * (n-m)

(Math.floor(Math.random() * (n-m) + m))

答案 1 :(得分:1)

问题出在您的字数:

(Math.floor(Math.random()) + m) * (n-m)

术语Math.floor(Math.random()) + m始终为m,因为根据MDN documentation

  

Math.random()函数返回一个浮点伪随机数,范围为0-1(包括0,但不包括1)

您可能希望括号在结尾处结束:)