Python使用random.choices()设置权重后输出不符预期是否正常
结论
代码逻辑完全正确,你观察到的现象是小样本随机抽样的正常波动,没有违背权重规则。
具体说明
random.choices()的权重参数定义的是长期大样本量下的统计概率,不会保证每次少量抽样的结果都严格匹配权重的大小排序。- 你的权重总和刚好为100,Yellow理论抽样概率为22%,Purple为20%,两者概率差仅2%,对应100次抽样的期望出现次数差只有2次。这种微小的数量差在随机波动下极易被抹平甚至反超,完全符合概率统计的规律。
- 你可以将循环抽样次数调整为10000次甚至更高再测试,此时各颜色的出现频率会非常贴近你设置的权重比例,Yellow出现次数最多也会成为常态。
内容的提问来源于stack exchange,提问作者blaze
相关产品推荐
相关产品推荐

