2013-05-18 118 views
0

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

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

现在,我要创造充满颜色数组,但我需要基于以下百分比来选择他们:

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。虽然我没有验证它的统计数据,但它直观地代表了我所追求的。像往常一样,我过度考虑了这个问题。其他答案是值得欢迎的。

+0

你的初始数组有多长? – karthikr

+0

@ karthikr可能是6 x 6格或6 x 8. –

回答

1

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

+0

谢谢。我创建了一个测试用例(链接在我的问题中)以可视化地表示这一点。 –