Suurin odotettavissa oleva ero pelaajien välillä käytettäessä 4d6 pudota pienin

Tietyn TRPG: n pelaajilla on hahmoja, joilla on 6 kykypistettä, kullakin kykypisteellä 3-18. Yksi menetelmä näiden tuottamiseksi on pyörittämällä 4d6 pudotus pienin kullekin pisteelle. Tämä tarkoittaa, että heitetään neljä kuudenpuoleista noppaa ja lisätään kolme korkeinta tulosta.

Mikä on odotettavissa oleva suurin ero näiden 5 pelaajan kahden kykypisteiden summassa?

Aiheeseen liittyvä kysymys täällä näyttää, kuinka 4d3-jakauman jakauma saadaan pienimmäksi, mutta miten pääsen sieltä vastaamaan yllä olevaan kysymykseeni?

Hyvä vastaus selittäisi tuloksen tavalla, jota tilastovaikuttaja voi seurata.

Vastaa

$ \ newcommand {\ E} {\ mathbb {E}} $ (Kirjoitan tämän olettaen, että olet perehtynyt todennäköisyysjakaumien ja odotusten manipulointiin, mutta toivottavasti ei mitään liian hienoa. Kerro minulle, jos minun pitäisi selittää jotain muuta. Teen tämän myös melko laskennallisella tavalla vain saadakseni vastauksen sen sijaan, että yritän tehdä kaiken käsin.)

Sano, että meillä on $ n = 5 $ pelaajaa, joista kullakin on yksi merkki. 6 kykypistettä, joista kukin on merkitty nimellä $ X_ {ij} $. Määritä $ Y_i = \ sum_ {j = 1} ^ 6 X_ {ij} $ olevan $ i $ th-pelaajan kykypisteiden summa. Sitten kysyt odotuksesta $ Z = \ max_ {i , i ”} \ lvert Y_i – Y_ {i”} \ rvert = Y _ {(n)} – Y _ {(1)} $, käyttäen merkintää, että $ Y _ {(1)} $ on ensimmäinen lajiteltu arvo alkaen $ \ {Y_1, \ pisteet, Y_n \} $ (eli vähimmäisarvo) ja $ Y _ {(n)} $ on $ n $ th (suurin).

Yksilö antaa $ X_ {ij } $

Helpoin tapa löytää $ X_ {ij} $ -jakauma, kuten linkittämässäsi vastauksessa, on vain pakottaa se huomioimalla kaikki mahdolliset $ 6 ^ 4 = 1296 $ -rullat. Tässä on joitain nopeita Python-koodeja (siellä on todennäköisesti parempi tapa tehdä tämä …):

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) 

Kokonaispisteet $ Y_i $

Nyt voimme löytää kykypisteiden summan jakauman, $ Y_i = X_ {i1} + X_ {i2} + \ dots + X_ {i6} $.

Mikä on kahden itsenäisen, erillisen satunnaismuuttujan $ A + B $ summan jakauma? No, $ \ Pr (A + B = c) = \ sum_ {k = – \ infty} ^ \ infty \ Pr (A = k) \ Pr (B = k – c) $. Osoittautuu, että tämä operaatio tunnetaan nimellä konvoluutio , ja onneksi numpy: lla on tehtävä se meille. (Linkitetyssä Wikipedia-artikkelissa ei ole paljon siitä todennäköisyyttä; voit kokeilla tätä Grinsteadin ja Snellin luku .)

Koodi:

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) 

$ Y $: n korkeimmat ja pienimmät arvot

Nyt kun tiedämme $ Y_i $: n jakauman, kysymyksemme on: mikä on kahden $ Y $? Vaihtoehtoisesti, mikä on ero korkeimman ja pienimmän $ Y $: n välillä?

Kun kirjoitamme meille tärkeän muuttujan muodossa $ Z = Y _ {(n)} – Y _ {(1)} $, meillä on että $ \ EZ = \ E Y _ {(n)} – \ E Y _ {(1)} $, koska odotus on lineaarinen. Tämä säästää työtä, jonka tein alun perin kirjoittaessani tämän vastauksen laskettaessa näiden kahden yhteistä jakaumaa. 🙂

Määritetään ensin ”kumulatiivinen jakofunktio (cdf) $ \ Pr (Y \ le y) = \ sum_ {k = 0} ^ y \ Pr (Y = k) $. Sitten $ Y _ {(n)} $: n cdf on $$ \ begin {tasaa *} \ Pr (Y _ {(n)} \ le y) & = \ Pr \ vasen (Y_1 \ le y \ text {ja} Y_2 \ le y \ text {ja} \ dots \ text {ja} Y_n \ le y \ right) \\ & = \ prod_ {i = 1} ^ n \ Pr \ vasen (Y_i \ le y \ right) \\ & = \ Pr (Y \ le y) ^ n \ end {tasaa *} $$, koska $ Y_i $ ovat riippumattomia. Sitten, koska $ Y _ {(n)} $ vie ei-negatiiviset kokonaisluvut, voimme laskea sen odotuksen seuraavasti: $$ \ begin {tasaus *} \ 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 \ oikea). \ End {tasaa *} $$ koodi:

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

saada exp_max noin 81 .5.

Samoin min: $$ \ begin {align *} \ Pr \ left (Y _ {(1)} \ le y \ right) & = 1 – \ Pr \ vasen (Y _ {(1)} > y \ right) \\ & = 1 – \ Pr \ vasen (Y_1 > y \ text {ja} \ dots \ text {ja} Y_n > y \ right) \\ & = 1 – \ Pr \ vasen (Y_i > y \ right) ^ n \\ & = 1 – \ vasen (1 – \ Pr \ vasen (Y \ le y \ oikea) \ oikea) ^ {n} \ end {tasaa *} $$ ja sen odotukset ovat: $$ \ E Y _ {( 1)} = \ summa_ {y = 0} ^ \ infty \ Pr (Y _ {(1)} > y) = \ summa_ {y = 0} ^ \ infty \ jäljellä (1 – \ Pr \ vasen (Y \ le y \ oikea) \ oikea) ^ n $$

Koodi:

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

exp_min noin 65,3.

Viimeinen odotettavissa oleva ero 5 pelaajan onnekkaimman ja epäonnisimman välillä on yhteensä 16,2 kykypistettä. (Se on tavallaan paljon!)


Muuten mainitsin, että laskin $ Y _ {(1)} $ ja $ Y _ {(n)} yhteisen jakauman $ (kuten $ \ Pr (Y_ {n} = y ”) \ Pr (Y _ {(1)} = y \ keskellä Y _ {(n)} = y”) $). On käynyt ilmi, että viidelle pelaajalle jakelu $ Y _ {(n)} – Y _ {(1)} $ näyttää tältä:

Kommentit

  • Huomaa, että saattaa olla parempi arvioida joukon kykyjä niiden kokonaispisteostojen perusteella niiden summan perusteella. Hämmentävää on, että voit ' t-osta pisteet alle 7, joten se ' ei ole aina hyvin määritelty ….

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *