所以我的任务是生成其中包含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;
}
答案 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)
您可能希望括号在结尾处结束:)