Differenza massima attesa tra i giocatori quando si usano 4d6 drop più basso

I giocatori di un certo TRPG hanno personaggi con 6 punteggi di caratteristica, ogni punteggio di caratteristica compreso tra 3-18. Un metodo per generarli è tirare 4d6 a caduta più bassa per ciascuno dei punteggi. Ciò significa che vengono lanciati quattro dadi a sei facce e vengono aggiunti i tre risultati più alti.

Qual è la differenza più alta prevista nella somma dei punteggi di caratteristica tra 2 di quei 5 giocatori?

La domanda correlata qui mostra come ottenere la distribuzione di 4d3 drop più bassa, ma come posso arrivare da lì a una risposta alla mia domanda sopra?

Una buona risposta spiegherebbe il risultato in un modo che un principiante di statistiche può seguire.

Risposta

$ \ newcommand {\ E} {\ mathbb {E}} $ (Sto scrivendo presumendo che tu abbia familiarità con la manipolazione delle distribuzioni di probabilità e delle aspettative, ma spero non sia niente di troppo stravagante. Fammi sapere se devo spiegare qualcosa di più. Lo sto anche facendo in un modo abbastanza computazionale per ottenere una risposta piuttosto che tentare di fare tutto a mano.)

Supponiamo che abbiamo $ n = 5 $ giocatori ciascuno che arrotoli un personaggio con 6 punteggi di caratteristica, ciascuno indicato come $ X_ {ij} $. Definisci $ Y_i = \ sum_ {j = 1} ^ 6 X_ {ij} $ come la somma dei punteggi di caratteristica del $ i $ th giocatore. Quindi stai chiedendo dellaspettativa di $ Z = \ max_ {i , i “} \ lvert Y_i – Y_ {i”} \ rvert = Y _ {(n)} – Y _ {(1)} $, utilizzando la notazione che $ Y _ {(1)} $ è il primo valore ordinato da $ \ {Y_1, \ dots, Y_n \} $ (ovvero il minimo) e $ Y _ {(n)} $ è il $ n $ th (il massimo).

Punteggi individuali $ X_ {ij } $

Il modo più semplice per trovare la distribuzione di $ X_ {ij} $, come nella risposta che hai collegato, è semplicemente forzarla considerando tutti i possibili $ 6 ^ 4 = 1296 $ rotoli. Ecco un codice Python veloce (probabilmente cè un modo migliore per farlo …):

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) 

Punteggio di caratteristica totale $ Y_i $

Ora possiamo trovare la distribuzione della somma dei punteggi di caratteristica, $ Y_i = X_ {i1} + X_ {i2} + \ dots + X_ {i6} $.

Qual è la distribuzione della somma di due variabili casuali indipendenti e discrete $ A + B $? Bene, $ \ Pr (A + B = c) = \ sum_ {k = – \ infty} ^ \ infty \ Pr (A = k) \ Pr (B = k – c) $. Risulta che questa operazione è nota come convoluzione , e fortunatamente numpy ha una funzione per farlo per noi. (Larticolo di Wikipedia collegato non ha molto a riguardo per la probabilità; potresti provare questo capitolo di Grinstead e Snell .)

Codice:

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) 

Valori massimo e minimo di $ Y $

Ora che conosciamo la distribuzione di $ Y_i $, la nostra domanda è: qual è la distanza massima a coppie tra due elementi di $ Y $? In alternativa, qual è la differenza tra $ Y $ più alto e più basso?

Scrivendo la variabile che ci interessa come $ Z = Y _ {(n)} – Y _ {(1)} $, abbiamo che $ \ EZ = \ E Y _ {(n)} – \ E Y _ {(1)} $, poiché laspettativa è lineare. Ciò consente di risparmiare il lavoro che ho fatto originariamente per scrivere questa risposta nel calcolare la distribuzione congiunta dei due. 🙂

Per prima cosa, definiamo la funzione di distribuzione cumulativa (cdf) $ \ Pr (Y \ le y) = \ sum_ {k = 0} ^ y \ Pr (Y = k) $. Quindi, il cdf di $ 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 \ sinistra (Y_i \ le y \ right) \\ & = \ Pr (Y \ le y) ^ n \ end {allinea *} $$ poiché $ Y_i $ sono indipendenti. Quindi, poiché $ Y _ {(n)} $ accetta valori interi non negativi, noi possiamo calcolare la sua aspettativa come $$ \ 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 *} $$ Codice:

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

ottenere exp_max circa 81 .5.

Allo stesso modo, per il minimo: $$ \ 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 {align *} $$ e la sua aspettativa è: $$ \ E Y _ {( 1)} = \ sum_ {y = 0} ^ \ infty \ Pr (Y _ {(1)} > y) = \ sum_ {y = 0} ^ \ infty \ sinistra (1 – \ Pr \ left (Y \ le y \ right) \ right) ^ n $$

Codice:

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

ottenere exp_min circa 65,3.

La differenza finale prevista tra il più fortunato e il più sfortunato dei 5 giocatori è quindi un totale di 16,2 punti abilità. (È un po tanto!)


A proposito, ho detto che ho calcolato la distribuzione congiunta di $ Y _ {(1)} $ e $ Y _ {(n)} $ (as $ \ Pr (Y_ {n} = y “) \ Pr (Y _ {(1)} = y \ mid Y _ {(n)} = y”) $). Si scopre che per cinque giocatori, il la distribuzione di $ Y _ {(n)} – Y _ {(1)} $ ha questo aspetto:

Commenti

  • Tieni presente che potrebbe essere meglio valutare la qualità di un insieme di abilità in base al punteggio totale di acquisto dei punti, piuttosto che alla loro somma. La cosa fastidiosa è che puoi ' t acquista un punteggio inferiore a 7, quindi ' non è sempre ben definito ….

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *