javascript - 根据百分比选择选项

标签 javascript algorithm html5-canvas

我需要一种有效的方法来根据百分比选择选项。

例如,假设我们有四种颜色:黑色、蓝色、红色和白色。

现在,我将创建一个填充颜色的数组,除了,我需要根据以下百分比选择它们:

Black - 80% chance of selection
Blue - 70% chance of selection
Red - 30% chance of selection
White - 5% chance of selection

我想为每种颜色分配 1 到 100 之间的范围,然后生成介于两者之间的随机数。然而,这意味着所有颜色的百分比必须加起来达到 100%,这可能真的无法避免。

代码不是必需的,但会喜欢一些可以通过 JavaScript 实现的算法来完成此任务。

编辑: 基于Patrice Levesque's回答,我创建了this test .虽然我还没有验证它的统计数据,但它直观地代表了我所追求的。像往常一样,我想多了这个问题。其他答案非常受欢迎。

最佳答案

你只需要规范你的值(value)观;得到总“百分比”(在你的例子中,80 + 70 + 30 + 5 → 185)并选择一个介于 1 和总数之间的数字;在你的例子中,1-80 是黑色,81-150 是蓝色,151-180 是红色,181-185 是白色。

关于javascript - 根据百分比选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16629463/

相关文章:

javascript - sails.hooks.views.render local 未定义

javascript - ReactJS - 将 setState 与 firebase 监听结合使用

algorithm - 资源分配问题

html - Canvas 上的绘制是否基于现有内容进行了优化?

javascript - 在 Canvas 上多次翻转和镜像图像

javascript - 获取已由浏览器加载的图像的 Javascript 中的唯一标识符

JavaScript 可在 IE 8 中运行,但不能在 Firefox 30 中运行

algorithm - gimp 色阶算法

c - 这个算法的时间复杂度是多少。我可以让它更快吗?

javascript - 围绕一条线创建一个多边形