Différence maximale attendue entre les joueurs lors de lutilisation de 4d6 drop le plus bas

Les joueurs dun certain TRPG ont des personnages avec 6 scores de capacité, chaque score de capacité allant de 3 à 18. Une méthode pour générer ceux-ci consiste à lancer la baisse de 4d6 la plus basse pour chacun des scores. Cela signifie que quatre dés à six faces sont lancés et que les trois résultats les plus élevés sont ajoutés.

Quelle est la différence la plus élevée attendue dans la somme des scores de capacité entre 2 de ces 5 joueurs?

La question connexe ici montre comment obtenir la distribution de 4d3 drop la plus basse, mais comment puis-je en arriver à une réponse à ma question ci-dessus?

Une bonne réponse expliquerait le résultat dune manière quun novice en statistiques peut suivre.

Réponse

$ \ newcommand {\ E} {\ mathbb {E}} $ (Jécris ceci en supposant que vous êtes familier avec la manipulation des distributions de probabilités et des attentes, mais avec un peu de chance rien dextraordinaire. Faites-moi savoir si je devrais expliquer quelque chose de plus. Je fais aussi cela de manière assez computationnelle pour simplement obtenir une réponse plutôt que dessayer de tout faire à la main.

Disons que nous avons $ n = 5 $ joueurs chacun enroulant un personnage avec 6 scores de capacité, chacun noté $ X_ {ij} $. Définissez $ Y_i = \ sum_ {j = 1} ^ 6 X_ {ij} $ comme étant la somme des scores de capacité du $ i $ ème joueur. Ensuite, vous posez des questions sur lespérance de $ Z = \ max_ {i , i « } \ lvert Y_i – Y_ {i »} \ rvert = Y _ {(n)} – Y _ {(1)} $, en utilisant la notation que $ Y _ {(1)} $ est la première valeur triée de $ \ {Y_1, \ dots, Y_n \} $ (cest-à-dire le minimum) et $ Y _ {(n)} $ est le $ n $ th (le maximum).

Lindividu obtient $ X_ {ij } $

Le moyen le plus simple de trouver la distribution de $ X_ {ij} $, comme dans la réponse que vous avez liée, est de simplement la forcer brutalement en considérant tous les $ 6 ^ 4 = 1296 $ rouleaux possibles. Voici du code Python rapide (il y a probablement une meilleure façon de le faire …):

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) 

Score total de capacité $ Y_i $

Nous pouvons maintenant trouver la distribution de la somme des scores de capacité, $ Y_i = X_ {i1} + X_ {i2} + \ dots + X_ {i6} $.

Quelle est la distribution de la somme de deux variables aléatoires discrètes indépendantes $ A + B $? Eh bien, $ \ Pr (A + B = c) = \ sum_ {k = – \ infty} ^ \ infty \ Pr (A = k) \ Pr (B = k – c) $. Il savère que cette opération est connue sous le nom de convolution , et heureusement numpy a une fonction pour le faire pour nous. (Larticle Wikipédia lié na pas grand-chose à ce sujet pour les probabilités; vous pouvez essayer ceci chapitre de Grinstead et Snell .)

Code:

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) 

Valeurs la plus haute et la plus basse de $ Y $

Maintenant que nous connaissons la distribution de $ Y_i $, notre question est: quelle est la distance maximale par paire entre deux éléments de $ Y $? Sinon, quelle est la différence entre le plus élevé et le plus bas $ Y $?

En écrivant la variable qui nous tient à cœur comme $ Z = Y _ {(n)} – Y _ {(1)} $, nous avons que $ \ EZ = \ E Y _ {(n)} – \ E Y _ {(1)} $, puisque lespérance est linéaire. Cela sauve le travail que jai fait en rédigeant à lorigine cette réponse en calculant la distribution conjointe des deux. 🙂

Tout dabord, définissons la fonction de distribution cumulative (cdf) $ \ Pr (Y \ le y) = \ sum_ {k = 0} ^ y \ Pr (Y = k) $. Ensuite, le cdf de $ Y _ {(n)} $ est $$ \ begin {align *} \ Pr (Y _ {(n)} \ le y) & = \ Pr \ left (Y_1 \ le y \ text {et} Y_2 \ le y \ text {et} \ dots \ text {et} Y_n \ le y \ right) \\ & = \ prod_ {i = 1} ^ n \ Pr \ left (Y_i \ le y \ right) \\ & = \ Pr (Y \ le y) ^ n \ end {align *} $$ puisque les $ Y_i $ sont indépendants. Ensuite, comme $ Y _ {(n)} $ prend des valeurs entières non négatives, nous peuvent calculer son espérance comme $$ \ 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 *} $$ Code:

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

obtenant exp_max environ 81 .5.

De même, pour le min: $$ \ begin {align *} \ Pr \ left (Y _ {(1)} \ le y \ right) & = 1 – \ Pr \ left (Y _ {(1)} > y \ right) \\ & = 1 – \ Pr \ left (Y_1 > y \ text {et} \ dots \ text {et} Y_n > y \ right) \\ & = 1 – \ Pr \ left (Y_i > y \ right) ^ n \\ & = 1 – \ left (1 – \ Pr \ left (Y \ le y \ right) \ right) ^ {n} \ end {align *} $$ et son espérance est: $$ \ 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 $$

Code:

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

obtenir exp_min environ 65,3.

La différence finale attendue entre le plus chanceux et le plus malchanceux des 5 joueurs est alors un total de 16,2 points de capacité. (Cest un peu beaucoup!)


Au fait, jai mentionné que javais calculé la distribution conjointe de $ Y _ {(1)} $ et $ Y _ {(n)} $ (as $ \ Pr (Y_ {n} = y « ) \ Pr (Y _ {(1)} = y \ mid Y _ {(n)} = y ») $). Il savère que pour cinq joueurs, le distribution de $ Y _ {(n)} – Y _ {(1)} $ ressemble à ceci:

Commentaires

  • Notez quil peut être préférable dévaluer la qualité dun ensemble de capacités en fonction de leur score total dachat de points plutôt que de leur somme. Ce qui est ennuyeux, cest que vous pouvez ' t point-acheter un score inférieur à 7, donc ce ' nest pas toujours bien défini ….

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *