javascript - 随机返回三个选项之一的函数,其中所有选项都有完全相同的机会?

标签 javascript random

我知道以前可能有人问过这个问题,但我正在尝试让 Javascript 函数返回三个选项之一。问题是每个选项的机会应该完全相等。 这是我目前所拥有的:

var choice = Math.random();
if (choice <= 0.34) {
    choice = "option1";
} else if (choice <= 0.67) {
    choice = "option2";
} else {
    choice = "option3";
}

这已经相当准确了,但是“option3”的概率略低。我怎样才能重新表述它以使每个选项都有相同的发生机会?我更喜欢不涉及在 if 条件或类似情况下使用“0.333333333...”的解决方案。

最佳答案

我认为做这样的事情会更干净、更简单:

var options = ["option1", "option2", "option3"];
var choice = options[Math.floor(Math.random()*options.length)];

关于javascript - 随机返回三个选项之一的函数,其中所有选项都有完全相同的机会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27964349/

相关文章:

python - 随机颜色文本生成

c - 如何使用标准库在 GNU C 中生成 A 到 B 之间的伪随机数(A,B 是整数)

在 Lua 中随机化数字而不重复

c - 确保对正确的类型进行正确的操作

javascript - 从具有相同类别的所有链接获取文本

C# - 如何在列表中添加所有 system.drawing.color 项目?

javascript - JQuery - 取消选择/单击关闭属性

javascript - 我无法在函数内添加函数

javascript - 用于设置元素的 ScrollTop 的跨浏览器方法?

javascript - 社会安全号码输入验证