【问题标题】:Is python random.choices biased? [closed]python random.choices 有偏见吗? [关闭]
【发布时间】:2021-11-18 13:36:49
【问题描述】:

我可能忘记了这篇文章中的一些基本统计数据。

我在 python 中进行了以下实验:

import random as r
bigger_than_zero=0
smaller_than_zero=0
for k in range(0,100):
    a=0
    for i in range(0,10000):
        a=a+r.choices([-4,-3,-2,1,0,1,2,3,4])[0]
    if a>0:
        bigger_than_zero+=1
    elif a<0:
        smaller_than_zero+=1
print(bigger_than_zero)
print(smaller_than_zero)

输出是

100
0

好吧,既然我没有确定权重,r.choices 不应该每次都输出一个介于 -4 和 4 之间的随机整数吗? 而且由于概率相等,10000次迭代后的平均总和结果不应该接近于零吗?而且既然它应该是随机的,接近于零并且是正态分布的,那么 big_than_zero 和 small_than_zero 最终结果不应该至少彼此接近(而不是 100 和 0 的结果)吗?

【问题讨论】:

  • 如果您打错字并在选择中错过了-
  • 基于Klaus D. 的评论,a=a+r.choices([-4,-3,-2,1,0,1,2,3,4])[0]应该a=a+r.choices([-4,-3,-2,-1,0,1,2,3,4])[0]

标签: python random statistics


【解决方案1】:

你选择的数组是错误的,你应该有:

[-4,-3,-2,-1,0,1,2,3,4]

所以:

import random as r
bigger_than_zero=0
smaller_than_zero=0
for k in range(0,100):
    a=0
    for i in range(0,10000):
        a=a+r.choices([-4,-3,-2,-1,0,1,2,3,4])[0]
    if a>0:
        bigger_than_zero+=1
    elif a<0:
        smaller_than_zero+=1
print(bigger_than_zero)
print(smaller_than_zero)

【讨论】:

  • 哦,我刚刚看到缺少的减号 XD 谢谢!
  • @MarcoMontevechi 很乐意提供帮助,如果解决了问题,请接受答案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
相关资源
最近更新 更多