随机权重的累积权重

Hen*_* P. 7 python random python-3.x

我对使用random.choicesPython 3.6中的新功能感到困惑。

这是文档

random.choices(population, weights=None, *, cum_weights=None, k=1)
Run Code Online (Sandbox Code Playgroud)

-返回从总体中选择的元素的k大小列表,并进行替换。如果人口为空,请加薪。IndexError

他们举了一个例子:weights=[10, 5, 30, 5]我不知道这意味着什么。他们为什么不加到100?如果我的人口是[1, 2, 3, 4]-这是否意味着选择“ 10”的可能性为0.1?

Sio*_*Goh 8

总重量为10+5+30+5=50。

假设人口是 [1,2,3,4]。

它以概率 10/50 = 0.2 返回 1

它以概率 5/50 = 0.1 返回 2

它以概率 30/50 = 0.6 返回 3

它以概率 5/50 = 0.1 返回 4

  • 根据定义,累积权重只是权重的前缀和。 (4认同)
  • 谢谢!这对于相对权重来说是有意义的。但是累积权重呢?[10, 5, 30, 5] 权重如何相当于 [10, 15, 45, 50] 累积权重? (2认同)