【发布时间】:2019-08-21 18:50:36
【问题描述】:
我对在 Python 3.6 中使用新的 random.choices 感到困惑。
这里是the doc:
random.choices(population, weights=None, *, cum_weights=None, k=1)-- 返回一个 k 大小的元素列表,该列表是从 population 中选择的并进行替换。如果 population 为空,则引发
IndexError。
他们举了一个例子:weights=[10, 5, 30, 5],我不知道这是什么意思。为什么它们的总和不等于 100?如果我的人口是[1, 2, 3, 4]——这是否意味着选择“10”的概率为 0.1?
【问题讨论】:
-
它们的总和不是 100,因为它们是相对权重,而不是百分比。如果总体不包括 10,则它发生的概率为零。在您的示例中,例如的概率
1是10 / (10 + 5 + 30 + 5),或 0.2。 -
啊哈。这澄清了事情!谢谢
标签: python python-3.x random