【发布时间】:2016-07-08 04:40:06
【问题描述】:
我想计算 n 骰子的所有眼睛与 s 边(编号从 1 到 s)的总和等于 t 的事件的概率。我的语言是 Python 3。
我目前的方法几乎是一种尝试计数的解决方案,并且只适用于少量(运行 probability(10, 10, 50) 已经吃掉了我所有的 RAM 并迫使我硬重置):
import itertools
def probability(n, s, t):
all_rolls=list(itertools.product(range(1,s+1), repeat=n))
target_rolls=[l for l in all_rolls if sum(l)==t]
return round(len(target_rolls)/len(all_rolls), 4)
但老实说,我不知道如何解决这个问题。你能帮我走上正轨吗?
【问题讨论】:
-
我假设您的意思是
t而不是x? -
@TadhgMcDonald-Jensen 是的,你是对的,我编辑了这个问题来解决这个问题。
标签: python-3.x numpy probability dice