Анализ усложняется тем, что игра переходит в «сверхурочное время», чтобы выиграть с разницей не менее двух очков. (В противном случае это было бы так же просто, как решение, показанное на https://stats.stackexchange.com/a/327015/919 .) Я покажу, как визуализировать проблему и использовать ее, чтобы разбить ее на легко вычисляемые вклады в ответ. Результат, хотя и немного грязный, вполне управляем. Симуляция подтверждает его правильность.
Пусть будет вашей вероятностью выиграть очко. p Предположим, что все точки независимы. Вероятность того, что вы выиграете игру, может быть разбита на (не перекрывающиеся) события в зависимости от того, сколько очков ваш противник набрал в конце, при условии, что вы не входите в сверхурочное время ( ) или в сверхурочное время. , В последнем случае (или станет) очевидно, что на каком-то этапе счет был 20-20.0,1,…,19
Есть приятная визуализация. Пусть результаты во время игры будут отображаться в виде точек где - ваш счет, а - счет вашего оппонента. Когда игра разворачивается, счета движутся вдоль целочисленной решетки в первом квадранте, начинающемся с , создавая игровой путь . Он заканчивается в первый раз, когда один из вас набрал по крайней мере и имеет запас по крайней мере . Такие выигрышные очки формируют два набора очков, «поглощающую границу» этого процесса, когда игровой путь должен заканчиваться.х у ( 0 , 0 ) 21 2(x,y)xy(0,0)212
На этом рисунке показана часть поглощающей границы (она продолжается бесконечно вверх и вправо), а также путь игры, которая ушла в сверхурочное время (увы, для вас потеря).
Давай посчитаем. Количество способов, которыми игра может закончиться с очками для вашего оппонента, - это количество различных путей в целочисленной решетке баллов, начиная с начального и заканчивая предпоследним . Такие пути определяются тем, какие из очков в игре вы выиграли. Следовательно, они соответствуют подмножествам размера чисел , и их существует . Поскольку на каждом таком пути вы выиграли очко (с независимыми вероятностями каждый раз, считая конечную точку), а ваш оппонент выиграл( x , y ) ( 0 , 0 ) ( 20 , y ) 20 + y 20 1 , 2 , … , 20 + yy(x,y)(0,0)(20,y)20+y201,2,…,20+y(20+y20)21py точек (с независимой вероятностью каждый раз), пути, связанные с составляют общую вероятность1−py
f(y)=(20+y20)p21(1−p)y.
Точно так же есть способов достичь представляющих 20-20 . В этой ситуации у вас нет определенной победы. Мы можем рассчитать шанс вашей победы, приняв общее соглашение: забудьте, сколько очков было набрано до сих пор, и начните отслеживать разницу в баллах. Игра имеет дифференциал и закончится, когда она впервые достигнет или , обязательно пройдя через по пути. Пусть будет шансом на победу, когда дифференциал равен .(20+2020)(20,20)0+2−2±1g(i)i∈{−1,0,1}
Так как ваш шанс на победу в любой ситуации равен , мы имеемp
g(0)g(1)g(−1)=pg(1)+(1−p)g(−1),=p+(1−p)g(0),=pg(0).
Единственное решение этой системы линейных уравнений для вектора подразумевает(g(−1),g(0),g(1))
g(0)=p21−2p+2p2.
Таким образом, это ваш шанс на победу после (что происходит с шансом ).(20,20)(20+2020)p20(1−p)20
Следовательно, ваш шанс на победу - это сумма всех этих непересекающихся возможностей, равная
==∑y=019f(y)+g(0)p20(1−p)20(20+2020)∑y=019(20+y20)p21(1−p)y+p21−2p+2p2p20(1−p)20(20+2020)p211−2p+2p2(∑y=019(20+y20)(1−2p+2p2)(1−p)y+(20+2020)p(1−p)20).
Материал в скобках справа является полиномом от . (Похоже, его степень равна , но все главные термины отменяются: его степень равна )21 20p2120
Когда , вероятность выигрыша близка к0,855913992.p=0.580.855913992.
У вас не должно возникнуть проблем с обобщением этого анализа для игр, которые заканчиваются любым количеством очков. Когда требуемый запас больше результат становится более сложным, но таким же простым.2
Кстати , с этими шансами на победу у вас был шанс выиграть первые игр. Это не противоречит тому, что вы сообщаете, что может побудить нас продолжать предполагать, что результаты каждого пункта независимы. Тем самым мы прогнозируем, что у вас есть шанс15(0.8559…)15≈9.7%15
(0.8559…)35≈0.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)
Когда я запустил это, вы выиграли в 8 570 случаях из 10 000 итераций. 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 игр, здесь приведены реконструкции игровых путей, соответствующих этим данным. Вы можете видеть, что две или три игры были опасно близки к потерям. (Любой путь, заканчивающийся на светло-сером квадрате, для вас потеря.)
Потенциальное использование этой фигуры включает в себя наблюдение:
Трассы концентрируются вокруг склона, определяемого соотношением 267: 380 от общего количества баллов, равным приблизительно 58,7%.
Разброс траекторий вокруг этого наклона показывает ожидаемое изменение, когда точки независимы.
Если точки сделаны в виде полос, то отдельные пути имеют тенденцию иметь длинные вертикальные и горизонтальные участки.
В более длинном наборе подобных игр ожидайте увидеть пути, которые, как правило, остаются в пределах цветного диапазона, но также ожидайте, что некоторые простираются за его пределы.
Перспектива одной или двух игр, путь которых обычно превышает этот спред, указывает на вероятность того, что ваш противник в конечном итоге выиграет игру, вероятно, скорее, чем позже.
Приложение 2
Код для создания рисунка был запрошен. Вот оно (очищено для получения немного более приятного рисунка).
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, "."))