我们从具有相关权重的基本选择集开始:
weights = {
'A': 2,
'B': 4,
'C': 3,
'D': 1
}
我们创建一个容器...经过该种操作后,容器中的元素如下:
['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'D']
我们现在可以通过生成一个介于 0 和列表长度之间的随机数从列表中进行随机选择...,并将其用作列表中的索引来获得我们的加权随机选择....如果我们想降低一个选择的权重,我们只需扫描列表并根据需要删除尽可能多的选择。增加权重或添加新选项甚至更简单,因为我们可以在列表末尾添加任意数量的选项。...(无序)
除了像上面使用的方法那样扩展集合,我们还可以保持集合的当前形式,并在循环中简单地模拟集合的扩展。