【发布时间】:2020-09-11 01:55:48
【问题描述】:
假设 2 支球队 A 和 B 正在进行一系列比赛,第一个 赢得4场比赛的球队赢得系列赛。假设 A 队有 55% 赢得每场比赛的机会,并且每场比赛的结果是 独立。
(a) A 队赢得系列赛的概率是多少?给一个 准确的结果并通过模拟确认。
(b) 预期的游戏数量是多少?给出一个准确的 结果并通过模拟确认。
(c) A 队的预期比赛场数是多少 赢得系列赛?给出准确的结果并通过模拟确认。
(d) 现在假设我们只知道 A 队更有可能获胜 每场比赛,但不知道确切的概率。如果最 可能玩的游戏数是 5,这意味着什么 A队每场比赛获胜的概率?
这是我所做的,但没有得到它..需要一些输入。谢谢
import numpy as np
probs = np.array([.55 ,.45])
nsims = 500000
chance = np.random.uniform(size=(nsims, 7))
teamAWins = (chance > probs[None, :]).astype('i4')
teamBWins = 1 - teamAWins
teamAwincount = {}
teamBwincount = {}
for ngames in range(4, 8):
afilt = teamAWins[:, :ngames].sum(axis=1) == 4
bfilt = teamBWins[:, :ngames].sum(axis=1) == 4
teamAwincount[ngames] = afilt.sum()
teamBwincount[ngames] = bfilt.sum()
teamAWins = teamAWins[~afilt]
teamBWins = teamBWins[~bfilt]
teamAwinprops = {k : 1. * count/nsims for k, count in teamAwincount.iteritems()}
teamBwinprops = {k : 1. * count/nsims for k, count in teamBwincount.iteritems()}
【问题讨论】:
-
您是否在某处得到了答案?
-
@Severin,还没有
-
好的,看看我的代码。您的代码在
np.random.uniform(size=(nsims, 7))中存在明显的错误... -
不客气。如果您对答案感到满意,您可以接受和/或反对。
-
我用简单的例子更新了代码,如何通过蒙特卡洛精确计算预期的游戏数量
标签: python random probability montecarlo