Espero que haja fãs de esportes entre os leitores. Se você joga badminton ou tênis de mesa, provavelmente se pergunta: qual é a probabilidade de ganhar o jogo com uma probabilidade conhecida de ganhar um ponto? Suponha que você perca para o seu oponente com uma pontuação de 11: 7. Parece que apenas 4 pontos de diferença, mas ao mesmo tempo não conseguem vencer o jogo. Não tem sorte? Proponho resolver este problema e obter uma resposta para esta pergunta.
Tendo uma relação indireta com a matemática financeira, sei que, para a matemática financeira, essa tarefa parecerá especialmente descomplicada. Os métodos possíveis para resolvê-lo são muito semelhantes aos métodos de cálculo do preço da opção. Mas há nuances nessa tarefa que são um tanto atípicas para as finanças. Vejamos as opções de solução.
Para começar, confiei ao meu filho de 15 anos, que faz um pouco de programação em Python, o método numérico para resolver esse problema (usando a palavra-chave "um pouco"). Sugeri que ele tentasse o método da árvore binária (em risco financeiro, a análise é geralmente chamada de método binomial ou treliça) e Monte Carlo. Surpreendentemente, Son rapidamente lidou com Monte Carlo, escrevendo um código bastante compacto. Se alguém não souber, a idéia de Monte Carlo é fazer um grande número de jogadas aleatórias, simulando um problema e encontrando uma resposta. Suponha que você seja o primeiro jogador. Nesse caso, temos a probabilidade de ganhar o ponto (7 / (11 + 7)) ~ = 0,39. Começamos o jogo gerando um número aleatório X no intervalo [0., 1.]. Se X <0,39, você ganha o ponto. Trazemos o jogo até o fim e observamos quem ganhou. Para alcançar uma precisão aceitável, executamos esse procedimento várias vezes. Em finanças, geralmente é usado o intervalo de 100K a 1M, o que garante a precisão de 8 dígitos significativos. Meu filho contou até 10K, foi instantaneamente e inequivocamente fornecido precisão suficiente. O que, no entanto, não buscamos, porque, por simplicidade, decidimos ignorar a batalha dos bodes. Ou seja, o placar 11:10 foi considerado uma vitória. Meia página de código é fácil o suficiente para resolver esse problema. Experimente e você vai gostar.
Não fiquei satisfeito com a simplicidade da solução com a ajuda de Monte Carlo e decidi carregar meu filho com o método da árvore binária. Ele negou por um longo tempo e reclamou da dificuldade. Ele teve que ajudar um pouco com o material.
A árvore binária é construída da seguinte maneira. Começamos a partir do placar 0-0. Se o primeiro jogador vencer o primeiro ponto, suba e suba para a direita; se o segundo vencer, desça e para a direita. Um movimento para a direita é um movimento em pontos desde o início do jogo até o fim. Para um jogo, são apresentadas até 3 árvores completas abaixo. Os vértices dos resultados intermediários são destacados em azul, amarelo - o primeiro jogador vence a partida e verde - o segundo jogador vence.

Começamos com a pontuação 0: 0, cuja probabilidade é de 100%. Cada transição para a direita tem sua própria probabilidade. Indique a probabilidade de ganhar um ponto pelo primeiro jogador - p1 e o segundo - p2. Naturalmente, a soma p1 + p2 = 1. Percorremos a árvore do começo ao fim e calculamos a probabilidade de entrar nessa célula. Para as células superior e inferior, a transição é possível apenas a partir de uma célula do nível anterior. Por exemplo, uma pontuação de 3: 0 é possível somente após 2: 0. A entrada nas células restantes ocorre a partir de duas células vizinhas à esquerda. Por exemplo, uma pontuação de 1: 1 é possível após 1: 0 quando o segundo jogador ganha o ponto posteriormente, ou quando 0: 1 quando o primeiro jogador vence.

Os picos são destacados em azul, acerto no qual vem de um dos vértices anteriores, amarelo - de dois. As células destacadas indicam o final do jogo, ou seja, a vitória de um dos jogadores. Ao calculá-los, apenas um vértice anterior também é usado, já que o outro é o fim da parte após o qual a transição não é realizada.
O problema do filho era representar essa árvore usando ferramentas de linguagem. Um gráfico se sugeriu, mas em Python é de alguma forma difícil com isso, ou ele não sabe. Eu mesmo não estou familiarizado com esse idioma. Eu tive que mover essa estrutura em uma matriz, distorcendo-a ligeiramente da seguinte maneira.

Além disso, resta um ciclo duplo da esquerda para a direita e de cima para baixo, contando as probabilidades das células e levando em consideração as condições de contorno. Eles são convertidos em if / if / else. Bem, resta resumir as probabilidades de ganhar células para um dos jogadores (é possível para o segundo verificar se a soma é 1).
E, finalmente, o terceiro método. Qualquer pontuação final do jogo (por exemplo 11: 7) implica um certo número de opções. As estatísticas dizem que este é o número de combinações de 7 a 17. O valor é 17! / ((17-7)! 7!). 17 é o número total de pontos marcados para esta conta menos um, já que o último ponto está sempre ganhando para o vencedor, ou seja, 7 perdidos não podem estar neste local. As opções possíveis para contas vencedoras são as seguintes (Ignore a luta dos bodes) - 11: 0, 11: 1, ..., 11: 10.
Ou seja, você pode classificar todos os resultados de uma pontuação vencedora para um jogador, somando o número de opções em cada uma delas, multiplicado pela probabilidade desse resultado. A tabela contém os resultados do cálculo para a probabilidade de ganhar um ponto 39%. power1 é o grau em que a probabilidade de ganhar um ponto é aumentada pelo vencedor, power2 pelo perdedor.

Todos os métodos acima funcionam de maneira confiável e fornecem os mesmos resultados.
Concluindo, apresentarei um gráfico da probabilidade de ganhar uma partida no tênis de mesa (até 11) e no badminton (até 21), dependendo da probabilidade média de ganhar um ponto.

A linha azul representa tênis de mesa, a linha laranja representa badminton. Como você pode ver no gráfico, para ter pelo menos algumas chances (~ 3%) de ganhar o jogo de tênis de mesa, você precisa ganhar pelo menos 30% dos pontos. Já em 25%, as chances caem abaixo de 1%.
No badminton, os requisitos são ainda mais rígidos. Lá, serão necessários mais de 35% para esperar uma vitória no jogo, com uma probabilidade de cerca de 3%.
Naturalmente, a probabilidade de ganhar uma partida (de vários jogos) cai ainda mais se você marcar menos de 50% para cada ponto.
Um conselho valioso sugere a si próprio - para ganhar partidas, você precisa trabalhar para ganhar todos os pontos.