A diferença máxima esperada entre os jogadores ao usar 4d6 cai mais baixo

Os jogadores de um determinado TRPG têm personagens com 6 valores de habilidade, cada valor variando de 3-18. Um método de gerá-los é rolar a queda mais baixa de 4d6 para cada uma das pontuações. Isso significa que quatro dados de seis faces são lançados e os três maiores resultados são somados.

Qual é a maior diferença esperada na soma dos valores de habilidade entre 2 desses 5 jogadores?

A pergunta relacionada aqui mostra como fazer com que a distribuição de 4d3 caia mais baixo, mas como faço para obter uma resposta à minha pergunta acima?

Uma boa resposta explicaria o resultado de uma maneira que um novato em estatística possa acompanhar.

Resposta

$ \ newcommand {\ E} {\ mathbb {E}} $ (Estou escrevendo isso presumindo que você esteja familiarizado com a manipulação de distribuições de probabilidade e expectativas, mas espero que nada muito sofisticado. Deixe-me saber se devo explicar mais alguma coisa. Também estou fazendo isso de uma forma bastante computacional para apenas obter uma resposta, em vez de tentar fazer tudo à mão.)

Digamos que temos $ n = 5 $ jogadores, cada um acumulando um personagem com 6 valores de habilidade, cada um denotado como $ X_ {ij} $. Defina $ Y_i = \ sum_ {j = 1} ^ 6 X_ {ij} $ como a soma dos valores de habilidade do $ i $ ésimo jogador. Então você está perguntando sobre a expectativa de $ Z = \ max_ {i , i “} \ lvert Y_i – Y_ {i”} \ rvert = Y _ {(n)} – Y _ {(1)} $, usando a notação de que $ Y _ {(1)} $ é o primeiro valor classificado de $ \ {Y_1, \ dots, Y_n \} $ (ou seja, o mínimo) e $ Y _ {(n)} $ é o $ n $ th (o máximo).

Pontuações individuais $ X_ {ij } $

A maneira mais fácil de encontrar a distribuição de $ X_ {ij} $, como na resposta que você vinculou, é apenas força bruta considerando todos os $ 6 ^ 4 = 1296 $ lançamentos possíveis. Aqui está um código Python rápido (provavelmente existe uma maneira melhor de fazer isso …):

import numpy as np import matplotlib.pyplot as plt def as_kth_of(a, k, n): """vector a => shape (1, ..., 1, a.size, 1, ..., 1) where new shape is length n, a.size is in kth""" return a[(np.newaxis,) * k + (slice(None),) + (np.newaxis,) * (n - k - 1)] def pmf_drop_lowest(sides, number): rolls = np.arange(1, sides + 1) totals = sum(as_kth_of(rolls, k, number) for k in xrange(number)) mins = np.ones_like(totals) * 10000 for k in xrange(number): mins = np.minimum(mins, as_kth_of(rolls, k, number)) return np.bincount((totals - mins).ravel()) / totals.size score_pmf = pmf_drop_lowest(6, 4) plt.bar(np.arange(score_pmf.size) - .5, score_pmf) 

Pontuação total de habilidade $ Y_i $

Agora podemos encontrar a distribuição da soma dos valores de habilidade, $ Y_i = X_ {i1} + X_ {i2} + \ dots + X_ {i6} $.

Qual é a distribuição da soma de duas variáveis aleatórias independentes e discretas $ A + B $? Bem, $ \ Pr (A + B = c) = \ sum_ {k = – \ infty} ^ \ infty \ Pr (A = k) \ Pr (B = k – c) $. Acontece que esta operação é conhecida como convolução e, felizmente, numpy tem uma função para fazer isso por nós. (O artigo da Wikipedia vinculado não tem muito sobre isso para probabilidade; você pode tentar isso capítulo de Grinstead e Snell .)

Código:

total_pmf = 1 for _ in xrange(6): total_pmf = np.convolve(total_pmf, score_pmf) plt.bar(np.arange(total_pmf.size) - .5, total_pmf) 

Valores mais altos e mais baixos de $ Y $

Agora que sabemos a distribuição de $ Y_i $, nossa pergunta é: qual é a distância máxima de pares entre dois elementos de $ Y $? Alternativamente, qual é a diferença entre o maior e o menor $ Y $?

Escrevendo a variável que consideramos $ Z = Y _ {(n)} – Y _ {(1)} $, temos que $ \ EZ = \ E Y _ {(n)} – \ E Y _ {(1)} $, visto que a expectativa é linear. Isso economiza o trabalho que eu fiz ao escrever originalmente esta resposta ao calcular a distribuição conjunta dos dois. 🙂

Primeiro, vamos definir a função de distribuição cumulativa (cdf) $ \ Pr (Y \ le y) = \ sum_ {k = 0} ^ y \ Pr (Y = k) $. Então, o cdf de $ Y _ {(n)} $ é $$ \ begin {align *} \ Pr (Y _ {(n)} \ le y) & = \ Pr \ left (Y_1 \ le y \ text {e} Y_2 \ le y \ text {e} \ dots \ text {e} Y_n \ le y \ right) \\ & = \ prod_ {i = 1} ^ n \ Pr \ left (Y_i \ le y \ right) \\ & = \ Pr (Y \ le y) ^ n \ end {alinhar *} $$ já que $ Y_i $ são independentes. Então, como $ Y _ {(n)} $ assume valores inteiros não negativos, nós podemos calcular sua expectativa como $$ \ begin {align *} \ E Y _ {(n)} & = \ sum_ {y = 1} ^ \ infty \ Pr (Y _ {(n)} \ ge y) = \ sum_ {y “= 0} ^ \ infty \ Pr (Y _ {(n)} > y”) \\ & = \ sum_ {y “= 0} ^ \ infty \ left (1 – \ Pr (Y _ {(n)} \ le y”) \ right) = \ sum_ {y “= 0} ^ \ infty \ left (1 – \ Pr (Y \ le y “) ^ n \ right). \ End {align *} $$ Código:

n_players = 5 total_cdf = np.cumsum(total_pmf) exp_max = np.sum(1 - total_cdf ** n_players) 

obtendo exp_max cerca de 81 .5.

Da mesma forma, para o min: $$ \ begin {align *} \ Pr \ left (Y _ {(1)} \ le y \ right) & = 1 – \ Pr \ left (Y _ {(1)} > y \ right) \\ & = 1 – \ Pr \ left (Y_1 > y \ text {e} \ dots \ text {e} Y_n > y \ right) \\ & = 1 – \ Pr \ left (Y_i > y \ right) ^ n \\ & = 1 – \ left (1 – \ Pr \ left (Y \ le y \ right) \ right) ^ {n} \ end {alinhar *} $$ e sua expectativa é: $$ \ E Y _ {( 1)} = \ sum_ {y = 0} ^ \ infty \ Pr (Y _ {(1)} > y) = \ sum_ {y = 0} ^ \ infty \ left (1 – \ Pr \ left (Y \ le y \ right) \ right) ^ n $$

Código:

exp_min = np.sum((1 - total_cdf) ** n_players) 

obtendo exp_min cerca de 65,3.

A diferença final esperada entre o mais sortudo e o mais azarado de 5 jogadores é então um total de 16,2 pontos de habilidade. (Isso é muito!)


A propósito, mencionei que calculei a distribuição conjunta de $ Y _ {(1)} $ e $ Y _ {(n)} $ (as $ \ Pr (Y_ {n} = y “) \ Pr (Y _ {(1)} = y \ mid Y _ {(n)} = y”) $). Acontece que, para cinco jogadores, o distribuição de $ Y _ {(n)} – Y _ {(1)} $ tem a seguinte aparência:

Comentários

  • Observe que pode ser melhor avaliar a qualidade de um conjunto de habilidades com base em sua pontuação total de compra de pontos, em vez de sua soma. O chato nisso é que você pode ' t point-buy uma pontuação abaixo de 7, então ' nem sempre é bem definido ….

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *