我在一个统计课上,我们经常会遇到各种各样的限制条件的“骰子问题”。这是一个概率问题,我需要用蒙特卡罗方法来评估事件的概率。我知道我可以整合我的方法,但是我想写一个程序,允许我简单地修改约束条件,比如我有多少个骰子,我做了多少个骰子,这些骰子有多少个边。在
这是我正在研究的问题之一。更简单,因为我不想被我写代码的“能力”冲昏头脑。在
假设一个骰子有9个面。估计当你掷5个骰子时,至少有3个骰子的值相同。在
这是我们给出的问题的一般模板: 掷X个数的n边骰子,每个边的边数从1到n。估计我们得到3个或更多相同结果的骰子的概率。在
我想为样本问题写一个函数,比方说,它以一个整数n作为输入,它是每个骰子中的面数,并计算出3个或更多个骰子具有相同值的概率。我最大的问题是“五分之三”的限制。 我在Stackoverflow上看过其他类似的问题,但没有一个真正触及我的基本问题。如何编写约束的代码? 我使用的是python3.2。在
class Die(object):
def __init__(self, sides = 9):
self.sides = sides
def roll(self):
return randint(1, self.sides)
我被困在这里了。任何意见都是有用的,谢谢!在
只需多次使用骰子类:
^{1}$然后根据需要分析您的分布:
^{pr2}$编辑:我知道这个解决方案不能解决你的家庭作业问题,但希望它能为你提供掷骰子和数骰子所需的工具。你很可能需要一次对多个骰子进行上述操作,并有一种方法来比较它们在每次掷骰子时的相等程度。在
我想我不需要在这里上课。你只需生成骰子掷骰子,然后检查骰子掷骰子是否应该计数。在本例中,我将使用
^{1}$Counter
进行计数,以使代码更干净:在我看来你有10%的机会。蒙特卡洛的诀窍在于确定你是否已经收敛。您可以使用不同数量的
ntries
多次执行此操作。你的makentries
越大,输出中的价差就越小。最终,当价差足够小的时候,你说你已经在解决方案上收敛了。在相关问题 更多 >
编程相关推荐