我在一个数组中有一些字母,只有 8 个,从 A 开始到 H 结束。使用典型的随机数生成器,我发现很少生成 A 和 H。我怎样才能使这两个界限更具包容性?
var allowedLetters = ["A","B","C","D","E","F","G","H"];
var i = Math.round(Math.random() * (allowedLetters.length - 1));
var letter = allowedLetters[i];
console.log(letter)
最佳答案
var i = Math.round(Math.random() * (allowedLetters.length - 1));
因为第一个和最后一个元素的范围为 0.5
,所有其他元素的范围为 1
。可能会这样做:
var i = Math.floor(Math.random() * allowedLetters.length);
是否所有元素都得到相同的分布。
关于javascript - 随机数生成器很少包括上限和下限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49098511/