如果我有58%的机会赢得积分,那么我赢得乒乓球比赛21胜2的机会是多少?


90

我与一个同事打赌,在50场乒乓球比赛中(首先赢得21分,获2分),我将赢得全部50场比赛。到目前为止,我们已经打了15场比赛,平均而言,我赢了58%积分,再加上到目前为止,我已经赢得了所有比赛。所以我们想知道我是否有58%的机会赢得积分,而他是否有42%的机会赢得积分,那么我赢得比赛的几率是多少?是否有一个公式可以插入差异百分比机会?

我们到处搜索,甚至问我们公司的数据科学家,但找不到直接的答案。

编辑:哇,我对回应的彻底震惊。非常感谢大家!!!如果人们好奇,我会更新自己的下注方式:我现在已经赢了50场比赛中的18场,所以我需要再赢32场。我赢得了所有积分的58.7%,因此我的对手赢得了41.3%的积分。我对手的标准差是3.52,他的平均得分是14.83,中位数是15.50。以下是到目前为止每个游戏的得分的屏幕截图。如果人们有兴趣,我可以随时跟进更新。

编辑#2:很遗憾,我们只能再玩几局,结果如下。我将继续替换图片,因此没有一堆乐谱的屏幕截图。

最终更新:我最终在第二十八场比赛中输给了我的同事。他以21-13击败我。感谢您所有的帮助!

在此处输入图片说明


11
下式:为它在形式倍程度-20多项式:在所有21项(具有大的系数,最大超过)。如果所有积分都是独立的,那么赢得接下来的35场比赛的机会只有。p 21 /1 2 p + 2 p 21.6 × 10 16 0.432 p=0.58,p21/(12p+2p2)1.6×10160.432%
whuber

8
我怀疑所有点(和游戏)是否彼此独立(出于各种原因)。非独立性可能会对答案产生重大影响。
Mark L. Stone

8
假设那是我玩过的同一场比赛,我记得那一次发球有优势。因此,忽略有关“热手”的所有信息,可能是您发球时赢了68%,而没有发球时赢了48%-这将歪曲所有概率;即使它找齐了58%,因此,我们没有足够的信息..
汉斯·奥尔森

5
只是评论-21分?早在2001
。– rcgldr

5
我将每隔约5场比赛继续发布有关此投注的更新。不幸的是,由于我们仅在下班后才玩,所以我们每周只能玩几场游戏。
理查德

Answers:


119

由于游戏进入“加时赛”以赢得至少两分的优势而使分析变得复杂。 (否则,它将像https://stats.stackexchange.com/a/327015/919所示的解决方案一样简单。)我将展示如何可视化问题并将其分解为易于计算的贡献答案。结果虽然有些混乱,但可以控制。模拟证明了其正确性。


令为您赢得积分的概率。p 假设所有点都是独立的。假设您不加班()或您加班根据对手在最后的得分可将您赢得比赛的机会分解为(非重叠)事件。在后一种情况下,(或将变得)显而易见,在某个阶段分数为20-20。0,1,,19

有一个很好的可视化。 让游戏中的得分绘制为点,其中是您的得分,是您对手的得分。随着游戏的进行,得分沿着第一个象限中的整数格子从开始移动,从而创建了游戏路径。结束时,您中的一个人第一次获得至少且利润率至少为。这样的获胜点形成了两组点,这是该过程的“吸收边界”,在此必须终止游戏路径。X Ý 0 0 21 2(x,y)xy(0,0)212

数字

此图显示了吸收边界的一部分(无限向上和向右延伸)以及进入加时赛的路径(可惜您蒙受损失)。

我们数一下。 游戏为对手以点结束的方式的数量是分数的整数格中从初始分数开始到倒数第二个分数。此类路径取决于您赢得游戏的点中的哪一个。因此,它们对应于数字的大小为的子集,其中有。因为在每个这样的路径中您都赢了分(每次都有独立概率,计算最终分),而您的对手赢了X Ý 0 0 20 ÿ 20 + Ý 20 1 2 ... 20 + ÿy(x,y)(0,0)(20,y)20+y201,2,,20+y 21py1py(20+y20)21py个点(每次具有独立概率),与相关的路径占了1py

f(y)=(20+y20)p21(1p)y.

同样,有种方式可以得出表示20-20并列的。在这种情况下,您没有确定的胜利。我们可以通过采用一个通用的约定来计算您获胜的机会:忘记到目前为止已经获得了多少分,并开始跟踪积分差。游戏的差值为并且在它初次达到或时结束,必定会沿途经过。令是当差值为时您获胜的机会。(20+2020)(20,20)0+22±1g(i)i{1,0,1}

由于您在任何情况下获胜的机会都是,所以我们有p

g(0)=pg(1)+(1p)g(1),g(1)=p+(1p)g(0),g(1)=pg(0).

向量的线性方程组的唯一解表示(g(1),g(0),g(1))

g(0)=p212p+2p2.

因此,这是您赢得的机会(这是)。(20,20)(20+2020)p20(1p)20

因此,您获胜的机会是所有这些相互关联的可能性的总和,等于

y=019f(y)+g(0)p20(1p)20(20+2020)=y=019(20+y20)p21(1p)y+p212p+2p2p20(1p)20(20+2020)=p2112p+2p2(y=019(20+y20)(12p+2p2)(1p)y+(20+2020)p(1p)20).

右括号内的内容是的多项式。(看起来它的学位是,但是所有主导词都被取消了:它的学位是)p2120

当,获胜的机会接近p=0.580.855913992.

您可以毫不费力地将此分析推广到以任意数量的点终止的游戏。当所需的余量大于,结果将变得更加复杂,但同样简单。2

顺便说一下,有了这些获胜的机会,您有机会赢得了前场比赛。这与您的报告并不矛盾,这可能会鼓励我们继续假设每一点的结果都是独立的。因此,我们预计您有机会(0.8559)159.7%15

(0.8559)350.432%

假设他们按照所有这些假设进行,则将赢得其余所有场比赛。除非收益很大,否则听起来似乎不是一个好选择!35


我喜欢通过快速仿真来检查这样的工作。 这里的R代码可在一秒钟内生成数万个游戏。假设游戏将超过126分(极少数游戏需要持续那么长时间,因此此假设对结果没有实质影响)。

n <- 21      # Points your opponent needs to win
m <- 21      # Points you need to win
margin <- 2  # Minimum winning margin
p <- .58     # Your chance of winning a point
n.sim <- 1e4 # Iterations in the simulation

sim <- replicate(n.sim, {
  x <- sample(1:0, 3*(m+n), prob=c(p, 1-p), replace=TRUE)
  points.1 <- cumsum(x)
  points.0 <- cumsum(1-x)
  win.1 <- points.1 >= m & points.0 <= points.1-margin
  win.0 <- points.0 >= n & points.1 <= points.0-margin
  which.max(c(win.1, TRUE)) < which.max(c(win.0, TRUE))
})
mean(sim)

当我执行此操作时,您在10,000次迭代中赢得了8,570个案例。可以计算Z分数(近似正态分布)来测试以下结果:

Z <- (mean(sim) - 0.85591399165186659) / (sd(sim)/sqrt(n.sim))
message(round(Z, 3)) # Should be between -3 and 3, roughly.

在此模拟中的值为与前述理论计算完全一致。0.31


附录1

根据对问题的更新,其中列出了前18场比赛的结果,以下是与这些数据一致的游戏路径的重构。您会看到其中两三场比赛险些接近亏损。(任何以浅灰色正方形结尾的路径对您来说都是一种损失。)

图2

该图的潜在用途包括观察:

  • 路径集中在总分数为267:380的坡度上,大约等于58.7%。

  • 围绕该斜率的路径的分散显示了点独立时预期的变化。

    • 如果将点标记成条纹,则单个路径将倾向于具有较长的垂直和水平拉伸。

    • 在更长的类似游戏中,希望看到的路径倾向于保持在有色范围内,但也希望有一些路径能够超出该范围。

    • 一两场比赛的前景通常都位于该价差之上,这表明您的对手有可能最终赢得一场比赛,可能早晚胜出。


附录二

要求创建图形的代码。在这里(清理以生成稍微好一点的图形)。

library(data.table)
library(ggplot2)

n <- 21      # Points your opponent needs to win
m <- 21      # Points you need to win
margin <- 2  # Minimum winning margin
p <- 0.58     # Your chance of winning a point
#
# Quick and dirty generation of a game that goes into overtime.
#
done <- FALSE
iter <- 0
iter.max <- 2000
while(!done & iter < iter.max) {
  Y <- sample(1:0, 3*(m+n), prob=c(p, 1-p), replace=TRUE)
  Y <- data.table(You=c(0,cumsum(Y)), Opponent=c(0,cumsum(1-Y)))
  Y[, Complete := (You >= m & You-Opponent >= margin) |
      (Opponent >= n & Opponent-You >= margin)]
  Y <- Y[1:which.max(Complete)]
  done <- nrow(Y[You==m-1 & Opponent==n-1 & !Complete]) > 0
  iter <- iter+1
}
if (iter >= iter.max) warning("Unable to find a solution. Using last.")
i.max <- max(n+margin, m+margin, max(c(Y$You, Y$Opponent))) + 1
#
# Represent the relevant part of the lattice.
#
X <- as.data.table(expand.grid(You=0:i.max,
                               Opponent=0:i.max))
X[, Win := (You == m & You-Opponent >= margin) |
    (You > m & You-Opponent == margin)]
X[, Loss := (Opponent == n & You-Opponent <= -margin) |
    (Opponent > n & You-Opponent == -margin)]
#
# Represent the absorbing boundary.
#
A <- data.table(x=c(m, m, i.max, 0, n-margin, i.max-margin),
                y=c(0, m-margin, i.max-margin, n, n, i.max),
                Winner=rep(c("You", "Opponent"), each=3))
#
# Plotting.
#
ggplot(X[Win==TRUE | Loss==TRUE], aes(You, Opponent)) +
  geom_path(aes(x, y, color=Winner, group=Winner), inherit.aes=FALSE,
            data=A, size=1.5) +
  geom_point(data=X, color="#c0c0c0") +
  geom_point(aes(fill=Win), size=3, shape=22, show.legend=FALSE) +
  geom_path(data=Y, size=1) +
  coord_equal(xlim=c(-1/2, i.max-1/2), ylim=c(-1/2, i.max-1/2),
              ratio=1, expand=FALSE) +
  ggtitle("Example Game Path",
          paste0("You need ", m, " points to win; opponent needs ", n,
                 "; and the margin is ", margin, "."))

如何是相交?不重复配置吗?例如,当,二项式系数为。当然后。但是后一种配置恰好是发现的配置(即,我们的玩家赢得21分,对手获得分)。我们不应该减去相交的概率吗?这就是首先使我受阻的原因。f(y)y=01y=1(2120)=21y=0
Easymode44 '18

1
@whuber:太好了,r code实施公开中的“漂亮可视化”部分也会吗?非常感谢。
Maximilian

7
@Stefan我的值是使用精确有理算术(在Mathematica中)计算的,并在末尾四舍五入。我怀疑您的数字可能仅使用双精度浮点计算,因此假设您的最后几位数字不正确。作为有理数,该值是
2494929816061114641968058046704583744174849151775019163577995310486129149305191822350025177001953125000000000000000000000000000000000000.
ub

4
@Maximilian我发布了可视化代码。
whuber

3
我认为处理加班的简单方法是,一旦达到20-20,就可以成对获得分数。唯一重要的是第一个玩家同时获胜(概率为0.58²)或第二个玩家同时获胜(概率为0.42²)。如果发生任何其他情况,请忽略它并继续播放直到上述情况之一发生。因此,第一名玩家在20-20之后的获胜概率为0.58²/(0.58²+0.42²),第二名玩家为0.42²/(0.58²+0.42²)。
超级猫

25

使用二项式分布并假设每个点都是独立的:

  • 玩家在前个点中获得的概率(考虑到必须赢得最后一个点)是58%2140n=2140(n120)0.58210.42n21 =k=2140(40k)0.58k0.4240k 0.80695

  • 玩家从得分中获得的概率是二项式。以此为条件,玩家随后以两分优势获胜的概率为58%2040(4020)0.58200.42200.07463558%0.5820.582+0.4220.656006

因此玩家获胜的总机率约为58%0.80695+0.074635×0.656006 0.8559

那么玩家赢得前场比赛的概率约为,这几乎是不可能的。玩家赢得最后场比赛的概率约为,这是极不可能的。 58%150.85559150.096958%350.85559350.0043


2
部分“的概率那么球员在两个分差胜为 ”58%0.582/(0.582+0.422)0.656006可以使用一些解释,因为它可能是在这个最困难的部分问题。
JiK

1
@JiK:一旦达到或更高的相等性,决定性几分的几率是,因此,好玩家领先于两个而不是最差玩家领先的概率是 -否则他们将返回相同的位置20200.582+0.4220.5820.582+0.422
亨利

3
比最高答案更简洁的答案,但是我想因为它没有图片,并且在12小时后发布,所以票数减少了80?= |
Attackfarm

17

我给出了计算答案。这是一个模拟乒乓球比赛的R函数,获胜者必须赢2点。唯一的论据是您赢得积分的概率。它将返回该游戏的最终得分:

## data simulation function ----------------------------------------------------
sim_game <- function(pt_chance) {
  them <- 0
  you <- 0
  while (sum((them < 21 & you < 21), abs(them - you) < 2) > 0) {
    if (rbinom(1, 1, pt_chance) == 1) {
      you <- you + 1
      them <- them + 0
    } else {
      you <- you + 0
      them <- them + 1
    }
  }
  return(list(them = them, you = you))
}

首先,通过模拟10,000场比赛来确保它能够正常工作,您有50%的机会赢得每分。我们应该观察到您的获胜百分比约为50%:

## testing 10,000 games --------------------------------------------------------
set.seed(1839)
results <- lapply(1:10000, function(x) sim_game(.5))
results <- as.data.frame(do.call(rbind, results))
results$you_win <- unlist(results$you) > unlist(results$them)
mean(results$you_win)

返回.4955,关于我们的期望。因此,让我们插入您的58%:

## simulate 10,000 games -------------------------------------------------------
set.seed(1839)
results <- lapply(1:10000, function(x) sim_game(.58))
results <- as.data.frame(do.call(rbind, results))
results$you_win <- unlist(results$you) > unlist(results$them)
mean(results$you_win)

这将返回.8606。因此,您大约有86.06%的机会赢得一场比赛。

现在,我们可以模拟35个游戏批次,并查看您将赢得全部 35个游戏的次数:

## how often do you win all 35? ------------------------------------------------
set.seed(1839)
won_all_35 <- c()
for (i in 1:10000) {
  results <- lapply(1:35, function(x) sim_game(.58))
  results <- as.data.frame(do.call(rbind, results))
  results$you_win <- unlist(results$you) > unlist(results$them)
  won_all_35[i] <- mean(results$you_win) == 1
}
mean(won_all_35)

这将返回.0037,这意味着您有0.37%的机会赢得接下来的35场比赛。这假定所有游戏和所有分数都彼此独立。如果愿意,可以将其显式编程到上面的函数中。

注意:我正在即时执行此操作。我敢肯定,有一种计算效率更高的编程方式。


尝试pbetterwins <- pbinom(19,40,0.42) + dbinom(20,40,0.42) * 0.58^2/(0.58^2+0.42^2); pbetterwins; pbetterwins^35使用二项分布进行计算。
亨利(Henry)

15

我们是否应该假设58%的获胜机会是固定的,并且积分是独立的?

我认为如果考虑到每一点都独立于下一点,那么Whuber的答案是一个很好的答案,并且写得很好并且得到了解释。但是,我认为,实际上,这只是一个有趣的起点(理论/理想化)。我认为现实中这些点并不是相互独立的,这可能会使您的同事对手或多或少地至少有50分获得一次胜利。

最初,我认为积分的依赖关系是一个随机过程,即不受玩家控制(例如,当一个玩家获胜或失去玩法时),这将导致更大的结果分散性,从而使较小的玩家获得收益这五十分之一。

但是,第二个想法可能会提出相反的建议:从贝叶斯的角度来看,您已经“完成”某件事的可能性为9.7%,这可能会给您一些(但只有微不足道的)好处,这一点与有利于使您获得成功的机制有关。赢得游戏的机率超过85%(或至少使对手的机率比前两段所述的机率高出15%的可能性更低)。例如,当您的位置不太好时,您的得分可能会更高(对于那些在比赛点上(无论是赞成还是反对)在得分上得分远高于常规得分的人来说,这并不奇怪)。您可以通过考虑这些动态因素来提高对85%的估计,并且可能有超过85%的概率赢得比赛。

无论如何,使用这个简单的点统计来提供答案可能是非常错误的。是的,您可以这样做,但是由于前提(点的独立性)不一定正确且对答案的影响很大,所以它不是正确的。42/58统计信息是更多信息,但是我们不太清楚如何使用它(模型的正确性),使用这些信息可能会提供其实际上没有的高精度答案。


示例:结果完全不同的同等合理模型

因此,假设的问题(假设独立的观点以及这些观点的已知的,理论的,概率)本身就是有趣的,可以回答。假设案例的答案与您的基本/原始问题并没有太大关系,这也许就是您公司的统计学家/数据科学家不愿提供直接答案的原因。

只是给出一个替代示例(不一定更好),它提供了一个令人困惑的(反)语句:“问:如果我已经赢了15场,赢得50场比赛的全部几率是多少?” 如果我们不开始认为“ 42/58分是相关的或给予我们更好的预测”,那么我们将仅根据您以前的获胜情况来开始预测您赢得比赛的可能性,并预测是否可以再赢得35场比赛15场比赛:

  • 使用贝叶斯技术来衡量您赢得游戏的机率,这意味着:对于统一的先验f(x)= 1,大约是31%,尽管这可能有点过于乐观。但是,即使您考虑使用在1到5之间的beta分布,您仍然可以:p(win another 35 | after already 15)=01f(p)p5001f(p)p15β=α

后验机会与先前beta分布的关系

这意味着我不会像0.432%那样简单的预测那么悲观。您已经赢得15场比赛的事实应该会增加您赢得接下来35场比赛的可能性。


基于新数据的注释

根据您对18场比赛的数据,我尝试拟合β-二项式模型。改变和并计算获得分数i,21(通过i,20)或分数20,20的概率,然后将其对数求和为对数似然分数。α=μνβ=(1μ)ν

它表明非常高的参数(基本beta分布中的散度很小)具有更高的可能性,因此可能几乎没有过度散布。这意味着该数据并不意味着最好使用可变参数来赢得积分的可能性,而不是使用固定的58%的获胜机会。这些新数据为Whuber的分析提供了额外的支持,Whuber的分析假设得分基于二项式分布。但是,当然,这仍然假设该模型是静态的,并且您和您的同事的行为均基于随机模型(每个游戏和每个点都是独立的)。ν

Beta分布参数的最大似然估计,代替固定的58%获胜机会:

Beta分布概率为58p的最大似然估计

问:如何阅读“参数mu和nu的LogLikelihood”图?

A:

  • 1)最大似然估计(MLE)是拟合模型的一种方法。似然度是指在给定模型参数的情况下数据的概率,然后我们寻找能够最大化此概率的模型。它背后有许多哲学和数学。
  • 2)曲线图是达到最佳MLE的惰性计算方法。我只是在网格上计算所有可能的值,然后看valeu是什么。如果需要更快,则可以使用寻求最优的计算迭代方法/算法,或者可能有直接的解析解决方案。
  • 3)参数和与beta分布https://en.wikipedia.org/wiki/Beta_distribution有关,该模型用作p = 0.58的模型(使其不固定但随时间变化而变化)。时间)。然后,将这种建模的“β-p”与二项式模型相结合,以预测达到某些分数的概率。它几乎与β-二项分布相同。您会看到最佳值在,这并不奇怪。所述值高(意味着低分散体)。我曾想象/预期至少会有一些过度分散。μνμ0.6ν

图1的代码/计算

posterior <- sapply(seq(1,5,0.1), function(x) {
    integrate(function(p) dbeta(p,x,x)*p^50,0,1)[1]$value/
    integrate(function(p) dbeta(p,x,x)*p^15,0,1)[1]$value
  }
)

prior <- sapply(seq(1,5,0.1), function(x) {
  integrate(function(p) dbeta(p,x,x)*p^35,0,1)[1]$value
}
)

layout(t(c(1,2)))


plot(  seq(1,5,0.1), posterior,
       ylim = c(0,0.32),
       xlab = expression(paste(alpha, " and ", beta ," values for prior beta-distribution")),
       ylab = "P(win another 35| after already 15)"
)
title("posterior probability assuming beta-distribution")

plot(  seq(1,5,0.1), prior,
       ylim = c(0,0.32),
       xlab = expression(paste(alpha, " and ", beta ," values for prior beta-distribution")),
       ylab = "P(win 35)"
)
title("prior probability assuming beta-distribution")

图2的代码/计算

library("shape")

# probability that you win and opponent has kl points
Pwl <- function(a,b,kl,kw=21) {
  kt <- kl+kw-1
  Pwl <- choose(kt,kw-1) * beta(kw+a,kl+b)/beta(a,b)
  Pwl
}

# probability to end in the 20-20 score
Pww <- function(a,b,kl=20,kw=20) {
  kt <- kl+kw
  Pww <- choose(kt,kw) * beta(kw+a,kl+b)/beta(a,b)
  Pww
}

# probability that you lin with kw points
Plw <- function(a,b,kl=21,kw) {
  kt <- kl+kw-1
  Plw <- choose(kt,kw) * beta(kw+a,kl+b)/beta(a,b)
  Plw
}

# calculation of log likelihood for data consisting of 17 opponent scores and 1 tie-position 
# parametezation change from mu (mean) and nu to a and b 
loglike <- function(mu,nu) { 
  a <- mu*nu
  b <- (1-mu)*nu
  scores <- c(18, 17, 11, 13, 15, 15, 16, 9, 17, 17, 13, 8, 17, 11, 17, 13, 19) 
  ps <- sapply(scores, function(x) log(Pwl(a,b,x)))
  loglike <- sum(ps,log(Pww(a,b)))
  loglike
}

#vectors and matrices for plotting contour
mu <- c(1:199)/200
nu <- 2^(c(0:400)/40)
z <- matrix(rep(0,length(nu)*length(mu)),length(mu))
for (i in 1:length(mu)) {
  for(j in 1:length(nu)) {
    z[i,j] <- loglike(mu[i],nu[j])
  }
}

#plotting
levs <- c(-900,-800,-700,-600,-500,-400,-300,-200,-100,-90,-80,-70,-60,-55,-52.5,-50,-47.5)
# contour plot
filled.contour(mu,log(nu),z,
               xlab="mu",ylab="log(nu)",         
               #levels=c(-500,-400,-300,-200,-100,-10:-1),
               color.palette=function(n) {hsv(c(seq(0.15,0.7,length.out=n),0),
                                              c(seq(0.7,0.2,length.out=n),0),
                                              c(seq(1,0.7,length.out=n),0.9))},
               levels=levs,
               plot.axes= c({
                 contour(mu,log(nu),z,add=1, levels=levs)
                 title("loglikelihood for parameters mu and nu")
                 axis(1)
                 axis(2)
               },""),
               xlim=range(mu)+c(-0.05,0.05),
               ylim=range(log(nu))+c(-0.05,0.05)
)

2
+1我感谢新观点。但是我会挑战这样一种观点,即点之间的依赖性使对手更有可能在接下来的35场比赛中获胜。实际上,它可以任意选择。得出相反结论的一种可能的机制是,您的得分要比58-42的优势强得多,而且当您被征召使用时,即使落后,您仍然可以团结起来赢得任何一场比赛。不假设独立性的实际问题涉及如何对非独立性进行建模。
ub

@whuber,你是对的。我也为这两种方式争论。1)我的第一个想法是,依赖关系是随机的,例如,人们在不受控制的情况下,在好时机和起伏时机起伏不定,而我想这会导致结果分散较大,从而增加了较小玩家的概率。2)但是,当时我在考虑贝叶斯原理,以及15场获胜的比赛如何影响分析(至少帖子中的问题与标题中的问题不同),并且可能存在一些有益于更强的球员。
Martijn Weterings '18

1
在我的帖子的后半部分,我仅举一个例子,该例子认为获胜的可能性应该大于86%。但是,尽管所有这些数学方法听起来都很精确,但实际上我们并不确定,因为我们的模型很差(信息量少,模型又差很多,准确性降低,主观信息丰富)。
Martijn Weterings,

2
@whuber我已经编辑了答案。这是一个很好的评论,我希望现在的答案更加清楚。
Martijn Weterings '18

1
2)曲线图是达到最佳MLE的惰性计算方法。我只是在网格上计算所有可能的值,然后看valeu是什么。如果需要更快,则可以使用寻求最优的计算迭代方法/算法,或者可能有直接的解析解决方案。
Martijn Weterings '18

12

可以花很多精力在一个完美的模型上。但是有时候坏模型会更好。没有什么比中心极限定理更糟糕的模型了-一切都是一条正常曲线。

我们将忽略“加班”。我们将各个点的总和建模为一条法线。我们将进行38轮比赛的模型,以得分最多的人为准,而不是第一至20。这是非常相似的游戏方式!

而且,我会盲目声称我们已经接近正确的答案。

令为点的分布。 当您得到一个点时,值为1,否则则为0。XX

因此 =和 = =。E(X)0.58Var(X)E(X)(1E(X))0.24

如果是独立点,则是您玩38轮后得到的点。Xii=138Xi

E(i=138Xi) = =38E(X)22.04

Var(i=138Xi) = 38 * Var()=X9.12

和 = =SD(i=138Xi) 3.0238Var(X))3.02

在我们的粗模型中,我们失去如果,赢得如果。38 i = 1 X i > 19i=138Xi<19i=138Xi>19

1.0115.6222.04193.02与平均值之间的差为标准偏差,在查阅z得分表得出失败的机会为。1.0115.62%

如果我们与更严格的答案进行比较,这比正确值低约。1%

通常,最好检查获胜机会的可靠性,而不是假设获胜机会并对其进行完美建模的更严格的模型。58 58%58%


@ Yakk,38到底是哪里来的??我也很确定var(38 * x)= 38 ^ 2 * var(X),而不是38 * var(X)。更正该错误后,您的“非常好的信封计算方法”如何成立?
use_norm_approx

@use_我将草率的38 * X用作“ 38个独立X的总和”,而不是“一个X乘以38”。38来自“ whover获得19胜以上,先赢得比赛”。我本可以使用39场比赛,而第一个> 19.5。结果将是相似的。
Yakk

3

根据仿真,看起来赢得任何给定游戏的概率约为85.5%。

正好赢得2的概率(这就是我阅读标题的方式,但似乎并不是您要的),大约为10.1%。

运行下面的代码。

set.seed(328409)
sim.game <- function(p)
{
 x1 = 0 
 x2 = 0 
 while( (max(c(x1,x2)) < 21) | abs(x1-x2)<2  ) 
 {
   if(runif(1) < p) x1 = x1 + 1 else x2 = x2 + 1 
 }
 return( c(x1,x2) ) 
}

S <- matrix(0, 1e5, 2)
for(k in 1:1e5) S[k,] <- sim.game(0.58)

mean( (S[,1]-S[,2]) == 2 ) #chance of winning by 2
mean(S[,1]>S[,2]) #chance of winning

1
这与Whuber的分析解决方案非常接近:dbinom(20,40,0.58)*0.58^2/(1-2*0.58+2*0.58^2)+dbinom(20,39,0.58)*0.58给出10.04%
Martijn Weterings
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.