为什么这似乎不是随机的?

大卫·格雷丹努斯(David Greydanus)

我正在运行一个程序,就像那些游戏中的一个,就是人们尝试猜测0到100之间的数字,其中有100个人在猜测,然后我平均了有多少种不同的猜测。

import random
def averager(times):
    tests=[]
    for i in range(times):
        l=[]
        for i in range(0,100):
            l.append(random.randint(0,100))
        tests.append(len(set(l)))
    return (sum(tests))/len(tests)

print(averager(1000))

由于某种原因,不同猜测的平​​均数为63.6

这是为什么?是由于python随机库中的漏洞引起的吗?

在人们猜测1到10之间的数字的情况下

第一人称有100%的机会猜测一个先前无法猜测的数字

第二人称有90%的机会猜测一个先前无法猜测的数字

第三人称有80%的机会猜测一个先前无法猜测的数字

等等...

根据我的推测,猜测一个新数字的平均机会为55%。但是数据并不能反映出这一点。

j

您的代码用于查找由100个人分别猜测1到100之间的数字得出的平均唯一猜测数目。至于为什么它收敛到63附近的数字...您应该将问题发布到数学堆栈交换中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

这似乎不是一个有效的功能。为什么?

为什么这返回 [],而不是 [“东西”]?

为什么这似乎没有初始化

为什么线程似乎随机执行?

为什么这加起来等于11,而不是8?

OpenGL,这为什么不是立方体?

为什么这最终是串联而不是加法?

为什么随机类不是静态的?

钢琴键似乎随机地粘着-无法弄清为什么

为什么我的python代码似乎是随机选择单词?

这似乎是一个基本问题......为什么 OnpropertyChanged 不起作用?

随机值似乎不是真的随机吗?

为什么平等在Python中似乎不是对称关系?

CodeIgniter似乎吞下(而不是记录)PHP分析错误。为什么?

为什么使用i ++的for循环似乎增加2而不是1?

为什么我的多进程队列似乎不是线程安全的?

通过使用self._variable从其他函数调用变量,以及为什么它似乎工作而不是随机工作(一定有原因)?

为什么这陷入僵局?

为什么这无限循环?

为什么这返回-2

任何人都可以解释为什么这代码连接,而不是增加的数值?

为什么这应该是一个 while 语句而不是一个 if 语句?

将函数分配给数字成员,这为什么不是失败?

函数调用函数;为什么这返回NoneType而不是读取文件?

为什么不是std :: array的ConstexprIterator来自双向/随机访问?

为什么C ++中的rand()函数不是真正随机的

为什么这个函数返回 0 而不是随机数

为什么groupBy 200之后的分区数是多少?为什么这200不是其他数字?

为什么某些规则似乎随机起作用?如何调试当前满足哪些规则?