我在上统计学课,我们经常遇到各种约束的“骰子问题”。这是一个概率问题,我需要使用蒙特卡罗方法来评估一个事件的概率。我知道我可以通过它整合我的方式,但我想编写一个程序,让我可以简单地修改我有多少个骰子,我做了多少卷以及这些骰子有多少面的约束。
这是我正在解决的问题之一。更简单,因为我不想因为我的代码编写“能力”而忘乎所以。
假设一个骰子每个有 9 个面。估计当你掷出 5 个骰子时,至少有 3 个骰子的值相同的概率。
这是我们给出的问题的通用模板:掷 X 个 n 面骰子,每个骰子的边数从 1 到 n。估计我们将获得 3 个或更多骰子并获得相同结果的概率。
我想为示例问题编写一个函数,比如说,它将一个整数 n 作为输入,它是每个骰子中的面数,并计算 3 个或更多骰子具有相同值的概率。我最大的问题是“至少 5 个中有 3 个”的约束。我已经查看了 Stackoverflow 上的其他类似问题,但没有一个真正与我息息相关。您将如何编写约束代码?我正在使用 Python 3.2。
class Die(object):
def __init__(self, sides = 9):
self.sides = sides
def roll(self):
return randint(1, self.sides)
我被困在这里。任何输入都是有帮助的,谢谢!