【发布时间】:2011-04-08 23:58:21
【问题描述】:
我有一组值,以及每个值的相关百分比:
a:70% 的机会
b: 20% 的机会
c: 10% 的机会
我想根据给定的百分比机会选择一个值(a、b、c)。
我该如何处理?
到目前为止,我的尝试如下所示:
r = random.random()
if r <= .7:
return a
elif r <= .9:
return b
else:
return c
我一直在想出一种算法来处理这个问题。我应该如何处理这个问题,以便它可以处理更大的值集,而不仅仅是将 if-else 流链接在一起。
(伪代码中的任何解释或答案都可以。python 或 C# 实现会特别有帮助)
【问题讨论】:
-
我遇到了这个问题,最终建立了一个库:github.com/kinetiq/Ether.WeightedSelector
-
这里的c#非常好和简单的实现:vcskicks.com/random-element.php
标签: c# python algorithm random