Hvordan bestemmer jeg enkelt resultatfordelingen for flere terninger?
On februar 13, 2021 by adminJeg vil beregne sannsynlighetsfordelingen for summen av en terningkombinasjon.
Jeg husker at sannsynligheten for er antall kombinasjoner som totalt utgjør antallet over det totale antall kombinasjoner (forutsatt at terningene har en jevn fordeling).
Hva er formlene for
- Antall kombinasjoner totalt
- Antall kombinasjoner som utgjør et visst antall
Kommentarer
- Jeg synes du bør behandle $ (X_1 = 1, X_2 = 2) $ og $ (X_1 = 2, X_2 = 1) $ som forskjellige hendelser.
Svar
Nøyaktige løsninger
Antall kombinasjoner i $ n $ kaster er selvfølgelig $ 6 ^ n $ .
Disse beregningene gjøres lettest ved å bruke den sannsynlighetsgenererende funksjonen for en dør,
$$ p (x) = x + x ^ 2 + x ^ 3 + x ^ 4 + x ^ 5 + x ^ 6 = x \ frac {1-x ^ 6} {1-x}. $$
(Egentlig er dette $ 6 $ ganger pgf – jeg tar meg av faktoren $ 6 $ på slutten.)
Pgf for $ n $ ruller er $ p (x) ^ n $ . Vi kan beregne dette ganske direkte – det er ikke en lukket form, men det er nyttig – ved hjelp av Binomial Theorem:
$$ p (x ) ^ n = x ^ n (1 – x ^ 6) ^ n (1 – x) ^ {- n} $$
$ $ = x ^ n \ venstre (\ sum_ {k = 0} ^ {n} {n \ velg k} (-1) ^ kx ^ {6k} \ høyre) \ venstre (\ sum_ {j = 0} ^ { \ infty} {-n \ select j} (-1) ^ jx ^ j \ right). $$
Antall måter å oppnå en sum som er lik $ m $ på terningen er koeffisienten til $ x ^ m $ i dette produktet, som vi kan isolere som
$$ \ sum_ {6k + j = m – n} {n \ select k} {- n \ select j} (- 1) ^ {k + j} . $$
Summen er over alle ikke-negative $ k $ og $ j $ som $ 6k + j = m – n $ ; den er derfor endelig og har bare omtrent $ (m-n) / 6 $ vilkår. For eksempel er antall måter å total $ m = 14 $ i $ n = 3 $ kaster på en sum av bare to termer, fordi $ 11 = 14-3 $ bare kan skrives som $ 6 \ cdot 0 + 11 $ og $ 6 \ cdot 1 + 5 $ :
$$ – {3 \ velg 0} {-3 \ velg 11} + {3 \ velg 1} {- 3 \ velg 5} $$
$$ = 1 \ frac {(- 3) (- 4) \ cdots (-13)} {11!} + 3 \ frac {(- 3) (- 4) \ cdots (-7)} {5!} $$
$$ = \ frac {1} {2} 12 \ cdot 13 – \ frac {3} {2} 6 \ cdot 7 = 15 . $$
(Du kan også være smart og merke at svaret vil være det samme for $ m = 7 $ av symmetrien 1 < -> 6, 2 < -> 5 og 3 < -> 4 og det er bare en måte å utvide $ 7 på – 3 $ som $ 6 k + j $ ; nemlig med $ k = 0 $ og $ j = 4 $ , noe som gir
$$ {3 \ choose 0} {- 3 \ select 4} = 15 \ text {.} $$
Sannsynligheten er derfor lik $ 15/6 ^ 3 $ = $ 5/36 $ , omtrent 14%.
Når dette blir smertefullt, gir Central Limit Theorem gode tilnærminger (i det minste til de sentrale begrepene der $ m $ er mellom $ \ frac {7 n} {2} – 3 \ sqrt {n} $ og $ \ frac {7 n} {2} + 3 \ sqrt { n} $ : på en relativ basis blir tilnærmingene det gir for haleverdiene verre og verre ettersom $ n $ blir stor).
Jeg ser at denne formelen er gitt i Wikipedia-artikkelen Srikant-referanser, men ingen begrunnelse er gitt, og det gis ikke eksempler. Hvis denne tilnærmingen ser for abstrakt ut, kan du skyte opp ditt favorittalgebrasystem og be det utvide $ n ^ {\ text {th}} $ kraften til $ x + x ^ 2 + \ cdots + x ^ 6 $ : du kan lese hele verdisettet med en gang. Eg , en Mathematica one-liner er
With[{n=3}, CoefficientList[Expand[(x + x^2 + x^3 + x^4 + x^5 + x^6)^n], x]]
Kommentarer
- Vil den matematikakoden fungere med wolfram alpha?
- Det fungerer. Jeg prøvde den tidligere versjonen din, men kunne ikke gi mening om utdataene.
- @Srikant: Expand [Sum [x ^ i, {i, 1,6}] ^ 3] fungerer også i WolframAlpha
- @ A.Wilson Jeg tror mange av disse referansene gi en klar vei til generaliseringen, som i dette eksemplet er $ (x + x ^ 2 + \ cdots + x ^ 6) (x + x ^ 2 + x ^ 3 + x ^ 4) ^ 3 $. Hvis du vil at
R
-kode skal beregne disse tingene, se stats.stackexchange.com/a/116913 for en fullt implementert system. Som et annet eksempel er Mathematica -kodenClear[x, d]; d[n_, x_] := Sum[x^i, {i, 1, n}]; d[6, x] d[4, x]^3 // Expand
- Merk at @whuber ‘ Avklaringen er for 1d6 + 3d4, og det burde få deg dit. For en vilkårlig wdn + vdm, (x + x ^ 2 + … + x ^ w) ^ n (x + x ^ 2 + … + x ^ v) ^ m. Ytterligere vilkår er polynomer konstruert og multiplisert med produktet på samme måte.
Svar
Nok en annen måte å raskt beregne sannsynlighetsfordelingen av et terningkast ville være å bruke en spesialisert kalkulator designet akkurat for det formålet.
Torben Mogensen , en CS professor ved DIKU har en utmerket terningkast kalt Troll .
Troll terningvals og sannsynlighetsberegner skriver ut sannsynlighetsfordelingen (pmf, histogram og eventuelt cdf eller ccdf), gjennomsnitt, spredning og gjennomsnittlig avvik for en rekke kompliserte terningkastmekanismer. Her er noen eksempler som viser Trolls terningkast språk:
Rull 3 6-sidige terninger og summer dem: sum 3d6
.
Rull 4 6-sidige terninger, hold de høyeste 3 og summer dem: sum largest 3 4d6
.
Rull en «eksploderende» 6-sidig dyse (dvs. når en «6» kommer opp, legg 6 til totalen og rull igjen): sum (accumulate y:=d6 while y=6)
.
Troll «s SML kildekode er tilgjengelig hvis du vil se hvordan den implementeres.
Professor Morgensen har også en 29-siders papir, « Dice Rolling Mechanisms in RPGs ,» der han diskuterer mange av terningkastmekanismene implementert av Troll og noe av matematikken bak dem.
Et lignende stykke gratis programvare med åpen kildekode er Dicelab , som fungerer både på Linux og Windows.
Svar
Det er en veldig fin måte å beregne kombinasjonene eller sannsynligheten på ities i et regneark (som excel) som beregner kronglete direkte.
Jeg vil gjøre det når det gjelder sannsynligheter og illustrere det for seks sidede terninger, men du kan gjøre det for terninger med et hvilket som helst antall sider (inkludert å legge til forskjellige).
( btw det er også enkelt i noe som R eller matlab som vil gjøre kronglinger)
Start med et rent ark, i noen få kolonner, og flytt deg ned en haug med rader fra toppen (mer enn 6) .
-
legg verdien 1 i en celle. Det er sannsynlighetene assosiert med 0 terninger. Legg en 0 til venstre; det er verdikolonnen – fortsett ned derfra med 1,2,3 ned så langt du trenger.
-
flytt en kolonne til høyre og ned en rad fra «1». skriv inn formelen «= sum (» deretter venstre pil opp-pil (for å markere cellen med 1 i den), trykk «:» (for å begynne å angi et område) og deretter pil opp 5 ganger, etterfulgt av «) / 6 «og trykk Enter – slik at du ender med en formel som
=sum(c4:c9)/6
(hvor herC9
er cellen med 1 i) .Kopier deretter formelen og lim den inn i de 5 cellene under den. De skal inneholde 0,166667 (ish).
Ikke skriv noe inn i de tomme cellene disse formlene referer til!
-
flytt ned 1 og til høyre 1 fra toppen av verdikolonnen og lim inn …
… totalt ytterligere 11 verdier. Dette vil være sannsynligheten for to terninger.
Det spiller ingen rolle om du limer inn noen for mange, så får du bare nuller.
-
gjenta trinn 3 for neste kolonne for tre terninger, og igjen for fire, fem osv. terninger.
Vi ser her at sannsynligheten for å rulle $ 12 $ på 4d6 er 0,096451 (hvis du multipliserer med $ 4 ^ 6 $, vil du kunne skrive det som en eksakt brøk).
Hvis du er dyktig i Excel – ting som å kopiere en formel fra en celle og lime inn i mange celler i en kolonne kan du generere alle tabeller opp til si 10d6 på omtrent et minutt (muligens raskere hvis du har gjort det noen ganger).
Hvis du vil ha kombinasjonstall i stedet for sannsynligheter, ikke del med 6.
Hvis du vil ha terninger med forskjellige antall ansikter, kan du summe $ k $ (i stedet for 6) celler og deretter dele med $ k $. Du kan blande terninger på tvers av kolonnene (f.eks.gjør en kolonne for d6 og en for d8 for å få sannsynlighetsfunksjonen for d6 + d8):
Kommentarer
- Dette er veldig nyttig for noen som meg som bare vil ha en måte å gjøre det på, uten å måtte forstå! Hvis du ikke har ‘ tanke på volatiliteten til
OFFSET()
-funksjonen, kan du lage denne dynamikken ved hjelp av et navngitt område. For for eksempel lagde jeg et område kaltDiceSize
for å holde antall sider og satte den første » 1 » sannsynlighet i B23. Jeg brukte et dynamisk navngitt område kalt KingSum som refererer til=OFFSET('Dice Rolls'!$A$22,-1*DiceSize,,DiceSize,1)
. Jeg kunne da bruke formelen=SUM(OFFSET(KingSum,ROW(A1),COLUMN(A1)))/DiceSize
i celle C23, dratt over et stort område for å gi et bord avhengig av DiceSize.
Svar
$ \ newcommand {red} {\ color {red}} $ $ \ newcommand {blue} {\ color {blue}} $
La den første dø være rød og den andre være svart. Så er det 36 mulige resultater:
\ begin {array} {c | c | c | c | c | c | c} & 1 & 2 & 3 & 4 & 5 & 6 \\\ hline \ red {1} & \ red {1}, 1 & \ red {1}, 2 & \ red {1}, 3 & \ red {1}, 4 & \ rød {1}, 5 & \ rød {1}, 6 \\ & \ blå {^ 2} & \ blue {^ 3} & \ blue {^ 4} & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} \\\ hline \ rød {2} & \ rød {2}, 1 & \ rød {2}, 2 & \ rød {2}, 3 & \ rød {2}, 4 & \ rød {2}, 5 & \ red {2}, 6 \\ & \ blue {^ 3} & \ blå {^ 4}
\ blue {^ 5} & \ blue {^ 6} & \ blue { ^ 7} & \ blue {^ 8} \\\ hline \ red {3} & \ red {3}, 1 & \ red {3}, 2 & \ red {3}, 3 & \ rød {3}, 4 & \ rød {3}, 5 & \ rød {3}, 6 \\ & \ blue {^ 4} & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} & \ blue {^ 8} & \ blue {^ 9} \\\ hline \ red {4} & \ red {4}, 1 & \ red {4}, 2 & \ red {4}, 3 & \ red {4}, 4 & \ rød {4}, 5 & \ rød {4}, 6 \\ & \ blå {^ 5} & \ blue {^ 6} & \ blue {^ 7} & \ blue {^ 8 } & \ blå {^ 9} & \ blå {^ {10}} \\\ hline \ rød {5} & \ rød {5 }, 1 & \ red {5}, 2 & \ red {5}, 3 & \ rød {5}, 4 & \ rød {5}, 5 & \ rød {5}, 6 \\ & \ blue {^ 6} & \ blue {^ 7} & \ blue {^ 8} & \ blue {^ 9} & \ blue {^ {10}} & \ blå {^ {11}} \\\ hline \ rød {6} & \ rød {6}, 1 & \ red {6}, 2 & \ red {6}, 3 & \ red {6}, 4 & \ rød {6}, 5 & \ rød {6}, 6 \\ & \ blå {^ 7} & \ blue {^ 8} & \ blue {^ 9} & \ blue {^ {10}} & \ blue {^ {11}} & \ blue {^ {12} } \\\ hline \ end {array}
Hver av disse 36 ($ \ red {\ text {red}}, \ text {black} $) resultatene er like sannsynlige.
Når du summerer tallene på ansiktene (totalt i $ \ blue {\ text {blå}} $), flere av (rød, svart) resultatene ender med samme sum – du kan se dette med tabellen i spørsmålet ditt.
Så for eksempel er det bare en måte å få totalt $ 2 $ (dvs. bare hendelsen ($ \ red {1}, 1 $)), men det er to måter å få $ 3 $ (dvs. de elementære hendelsene ($ \ red {2}, 1 $) og ($ \ rød {1}, 2 $)). Så det er dobbelt så sannsynlig at totalt $ 3 $ kommer opp som $ 2 $. På samme måte er det tre måter å få $ 4 $ på, fire måter å få $ 5 $ og så videre .
Nå som du har 36 mulige (røde, svarte) resultater, er det totale antallet måter å få alle de forskjellige totalene også på 36, så du bør dele med 36 på slutten. Din totale sannsynlighet vil være 1, som den skal være.
Kommentarer
- Wow, tabellen er vakker!
- Veldig pent
Svar
Omtrentlig løsning
Jeg forklarte den nøyaktige løsningen tidligere (se nedenfor). Jeg vil nå tilby en omtrentlig løsning som passer bedre til dine behov.
La:
$ X_i $ være resultatet av et kast med en $ s $ terning der $ i = 1, … n $.
$ S $ være summen av alle $ n $ terninger.
$ \ bar {X} $ være eksemplets gjennomsnitt.
Per definisjon har vi:
$ \ bar {X} = \ frac {\ sum_iX_i} {n} $
Med andre ord,
$ \ bar {X} = \ frac {S} {n} $
Tanken er nå å visualisere prosessen med å observere $ {X_i} $ som resultatet av å kaste de samme terningene $ n $ ganger i stedet for som resultatet av å kaste $ n $ terning. Dermed kan vi påberope oss den sentrale grensesetningen (ignorerer tekniske forhold knyttet til å gå fra diskret distribusjon til kontinuerlig), vi har som $ n \ rightarrow \ infty $:
$ \ bar {X} \ sim N \ mu, \ sigma ^ 2 / n) $
hvor,
$ \ mu = (s + 1) / 2 $ er gjennomsnittet av kastet av en enkelt terning og
$ \ sigma ^ 2 = (s ^ 2-1) / 12 $ er den tilknyttede variansen.
Ovennevnte er åpenbart en tilnærming da den underliggende fordelingen $ X_i $ har diskret Brukerstøtte.
Men,
$ S = n \ bar {X} $.
Dermed har vi:
$ S \ sim N (n \ mu, n \ sigma ^ 2) $.
Nøyaktig løsning
Wikipedia har en kort forklaring på hvordan man beregner de nødvendige sannsynlighetene. Jeg vil utdype litt mer om hvorfor forklaringen der gir mening. I den grad det er mulig har jeg brukt lignende betegnelser som Wikipedia-artikkelen.
Anta at du har $ n $ terning hver med $ s $ ansikter, og at du vil beregne sannsynligheten for at en enkelt rull av alle $ n $ terning totalt beløper seg til $ k $. Tilnærmingen er som følger:
Definer:
$ F_ {s, n} (k) $: Sannsynligheten for at du får totalt $ k $ på en enkelt rull på $ n $ terninger med $ s $ ansikter.
Per definisjon har vi:
$ F_ {s, 1} (k) = \ frac {1} {s} $
Ovennevnte sier at hvis du bare har en terning med $ s $, er sannsynligheten for å oppnå totalt $ k $ mellom 1 og s den velkjente $ \ frac {1} {s} $.
Tenk på situasjonen når du kaster to terninger: Du kan oppnå en sum på $ k $ som følger: Den første kasten er mellom 1 og $ k-1 $, og den tilsvarende kasten for den andre er mellom $ k -1 $ til $ 1 $. Dermed har vi:
$ F_ {s, 2} (k) = \ sum_ {i = 1} ^ {i = k-1} {F_ {s, 1} (i) F_ { s, 1} (ki)} $
Vurder nå en terningkast: Du kan få en sum på $ k $ hvis du kaster en til $ k-2 $ på den første terningen og sum på de resterende to terningene er mellom $ k-1 $ og $ 2 $. Dermed
$ F_ {s, 3} (k) = \ sum_ {i = 1} ^ {i = k-2} {F_ {s, 1} (i) F_ {s, 2 } (ki)} $
Fortsatt logikken ovenfor får vi rekursjonsligningen:
$ F_ {s, n} (k) = \ sum_ {i = 1} ^ {i = k-n + 1} {F_ {s, 1} (i) F_ {s, n-1} (ki)} $
Se Wikipedia-lenken for mer informasjon.
Kommentarer
- @Srikant Utmerket svar, men løser den funksjonen til noe aritmetikk (dvs. ikke rekursivt)?
- @C. Ross Dessverre tror jeg ikke det. Men jeg mistenker at rekursjonen ikke skal være så vanskelig så lenge det er å gjøre med rimelig små n og små s. Du kan bare bygge opp en oppslagstabell og bruke den gjentatte ganger etter behov.
- Wikipedia-siden du koblet til har en enkel ikke-rekursiv formel som er en enkelt sum. En avledning er i whuber ‘ s svar.
- Wiki-lenkeankeret er dødt, vet du om en erstatning?
Svar
Dette er faktisk et overraskende komplisert spørsmål. Heldigvis for deg finnes det en nøyaktig løsning som er veldig godt forklart her:
http://mathworld.wolfram.com/Dice.html
Sannsynligheten du leter etter er gitt ved ligning (10): «Sannsynligheten for å oppnå p-poeng (en rull med p) på n-sidige terninger».
I ditt tilfelle: p = den observerte poengsummen (sum av alle terninger), n = antall terninger, s = 6 (6-sidet terning). Dette gir deg følgende sannsynlighetsmassefunksjon:
$$ P (X_n = p) = \ frac {1} {s ^ n} \ sum_ {k = 0} ^ {\ lfloor (pn) / 6 \ rfloor} (-1) ^ k {n \ velg k} {p-6k-1 \ velg n-1} $$
Kommentarer
- Velkommen til nettstedet vårt, Felix!
Svar
Karakteristiske funksjoner kan gjøre beregninger som involverer summene og forskjellene til tilfeldige variabler veldig enkle. Mathematica har mange funksjoner for å jobbe med statistiske fordelinger, inkludert et innebygd for å transformere en fordeling til dens karakteristiske funksjon.
Jeg vil like for å illustrere dette med to konkrete eksempler: (1) Anta at du ønsket å bestemme resultatene av å kaste en terningsamling med forskjellige antall sider, f.eks. kaste to seks-sidede terninger pluss en åttesidig dø (dvs. 2d6 + d8 )?Eller (2) antar at du ønsket å finne forskjellen på to terningkast (f.eks. d6-d6 )?
En enkel måte å gjøre dette på ville være å bruke de karakteristiske funksjonene av de underliggende diskrete ensartede fordelingene. Hvis en tilfeldig variabel $ X $ har en sannsynlighetsmassefunksjon $ f $, er dens karakteristiske funksjon $ \ varphi_X (t) $ bare den diskrete Fourier Transform av $ f $, dvs. $ \ varphi_X (t) = \ mathcal {F} \ {f \} (t) = E [e ^ {it X }] $. En setning forteller oss:
Hvis de uavhengige tilfeldige variablene $ X $ og $ Y $ har tilsvarende sannsynlighetsmassefunksjoner $ f $ og $ g $, så er pmf $ h $ av summen $ X + Y $ for disse bobilene er konvolusjon av pmfs $ h (n) = (f \ ast g) (n) = \ sum_ {m = – \ infty} ^ \ infty f (m) g (nm) $.
Vi kan bruke konvolusjonsegenskapen til Fourier Transforms for å omformulere dette enklere når det gjelder karakteristiske funksjoner:
Den karakteristiske funksjonen $ \ varphi_ {X + Y} (t) $ av summen av uavhengige tilfeldige variabler $ X $ og $ Y $ tilsvarer produktet av deres karakteristiske funksjoner $ \ varphi_ {X} (t) \ varphi_ {Y} (t) $.
Denne Mathematica-funksjonen vil gjøre den karakteristiske funksjonen for en ensidig dør:
MakeCf[s_] := Module[{Cf}, Cf := CharacteristicFunction[DiscreteUniformDistribution[{1, s}], t]; Cf]
PMf for en distribusjon kan gjenopprettes fra dens karakteristiske funksjon, fordi Fourier-transformasjoner er inverterbare. Her er Mathematica-koden for å gjøre det:
RecoverPmf[Cf_] := Module[{F}, F[y_] := SeriesCoefficient[Cf /. t -> -I*Log[x], {x, 0, y}]; F]
Fortsett vårt eksempel, la F være pmf som resulterer fra 2d6 + d8.
F := RecoverPmf[MakeCf[6]^2 MakeCf[8]]
Det er $ 6 ^ 2 \ cdot 8 = 288 $ utfall. Støttedomenet til F er $ S = \ {3, \ ldots, 20 \} $. Tre er min fordi du kaster tre terninger. Og tjue er maks fordi $ 20 = 2 \ cdot 6 + 8 $. Hvis du vil se bildet av F, beregne
In:= F /@ Range[3, 20] Out= {1/288, 1/96, 1/48, 5/144, 5/96, 7/96, 13/144, 5/48, 1/9, 1/9, \ 5/48, 13/144, 7/96, 5/96, 5/144, 1/48, 1/96, 1/288}
Hvis du vil vite antall utfall som er 10, beregne
In:= 6^2 8 F[10] Out= 30
Hvis de uavhengige tilfeldige variablene $ X $ og $ Y $ har tilsvarende sannsynlighetsmassefunksjoner $ f $ og $ g $, så er pmf $ h $ av forskjellen $ X – Y $ for disse bobilene krysskorrelasjon av pmfs $ h (n) = (f \ star g) (n) = \ sum_ {m = – \ infty} ^ \ infty f (m) g (n + m) $ .
Vi kan bruke tverrkorrelasjonsegenskapen til Fourier Transforms for å omformulere dette enklere når det gjelder karakteristiske funksjoner:
Den karakteristiske funksjonen $ \ varphi_ {XY} (t) $ av forskjellen mellom to uavhengige tilfeldige variabler $ {X, Y} $ tilsvarer produktet av den karakteristiske funksjonen $ \ varphi_ {X} (t) $ og $ \ varphi_ {Y} (- t) $ (NB det negative tegnet foran variabelen t i andre ka karakteristisk funksjon).
Så ved hjelp av Mathematica for å finne pmf G av d6-d6:
G := RecoverPmf[MakeCf[6] (MakeCf[6] /. t -> -t)]
Det er $ 6 ^ 2 = 36 $ utfall. Støttedomenet til G er $ S = \ {- 5, \ ldots, 5 \} $. -5 er min fordi $ -5 = 1-6 $. Og 5 er maks fordi $ 6-1 = 5 $. Hvis du vil se bildet av G, kan du beregne
In:= G /@ Range[-5, 5] Out= {1/36, 1/18, 1/12, 1/9, 5/36, 1/6, 5/36, 1/9, 1/12, 1/18, 1/36}
Kommentarer
- Selvfølgelig for diskrete distribusjoner, inkludert distribusjoner av endelig støtte (som de det er snakk om her), er cf bare den sannsynlighetsgenererende funksjonen evaluert ved x = exp (it), noe som gjør det til en mer komplisert måte å kode den samme informasjonen på.
- @ whuber: Som du sier, er cf, mgf og pgf mer eller mindre det samme og kan lett omdannes til hverandre, men Mathematica har en cf innebygd som fungerer med alle sannsynlighetsfordelingene den vet om, mens den har ‘ ikke en pgf innebygd. Dette gjør Mathematica-koden for å jobbe med terninger (og forskjeller) ved bruk av cfs spesielt elegant å konstruere, uavhengig av kompleksiteten i terninguttrykk som jeg håper jeg demonstrerte ovenfor. I tillegg skader det ikke ‘ å vite hvordan cfs, FTs, convolutions og cross-correlations kan bidra til å løse problemer som dette.
- @Elisa: Gode poeng , alle sammen. Jeg antar at det jeg lurer mest på er om de ti eller så linjene dine i Mathematica-koden virkelig er mer » elegante » eller effektive enn enkelt linje jeg foreslo tidligere (eller den enda kortere linjen Srikant matet til Wolfram Alpha). Jeg mistenker at de interne manipulasjonene med karakteristiske funksjoner er vanskeligere enn de enkle viklingene som trengs for å multiplisere polynomer. Absolutt sistnevnte er enklere å implementere i de fleste andre programvaremiljøer, som Glen_b ‘ svaret indikerer. Fordelen med din tilnærming er dens større allmenhet.
Svar
Her er en annen måte å beregne sannsynligheten på distribusjon av summen av to terninger for hånd ved hjelp av viklinger.
For å holde eksemplet veldig enkelt, skal vi beregne sannsynlighetsfordelingen av summen av en tresidig dør (d3) hvis tilfeldige variabel vi vil kalle X og en tosidig dør (d2 ) hvis tilfeldige variabel vi «vil kalle Y.
Du skal lage en tabell. Over den øverste raden skriver du sannsynlighetsfordelingen av X (utfallet av å kaste en rettferdig d3). Nedover i venstre kolonne , skriv sannsynlighetsfordelingen av Y (utfall av å kjøre en rettferdig d2).
Du skal konstruere ytre produkt av øverste rad med sannsynligheter med venstre kolonne med sannsynligheter. For eksempel vil den nedre høyre cellen være produktet av Pr [X = 3] = 1/3 ganger Pr [Y = 2] = 1/2 som vist i den medfølgende figuren. I vårt forenklede eksempel tilsvarer alle cellene 1/6.
Deretter skal du oppsummere langs de skrå linjene til ytre produktmatrisen som vist i medfølgende diagram. Hver skrå linje passerer gjennom en eller flere celler som jeg har farget det samme: Den øverste linjen går gjennom en blå celle, den neste linjen går gjennom to røde celler, og så videre.
Hver av summene langs skråstillingene representerer en sannsynlighet i den resulterende fordelingen. For eksempel tilsvarer summen av de røde blodcellene sannsynligheten for at de to terningene summeres til 3. Disse sannsynlighetene vises nede på høyre side av det medfølgende diagrammet.
Denne teknikken kan brukes med to separate distribusjoner med endelig støtte. Og du kan bruke det iterativt. Hvis du for eksempel vil vite fordelingen av tre sekssidede terninger (3d6), kan du først beregne 2d6 = d6 + d6; deretter 3d6 = d6 + 2d6.
Det er et gratis (men lukket lisens) programmeringsspråk som heter J . Det er et arraybasert språk med røtter i APL. Den har innebygd operatører for å utføre ytre produkter og summer langs skråningene i matriser, noe som gjør teknikken jeg illustrerte ganske enkel å implementere.
I den følgende J-koden definerer jeg to verb. Først konstruerer verbet d
en matrise som representerer pmf til en ensidig dør. For eksempel er d 6
pmf til en 6-sidig dyse. For det andre finner verbet conv
det ytre produktet av to matriser og summer langs de skrå linjene. Så conv~ d 6
skriver ut pmf til 2d6:
d=:$% conv=:+//.@(*/) |:(2+i.11),:conv~d 6 2 0.0277778 3 0.0555556 4 0.0833333 5 0.111111 6 0.138889 7 0.166667 8 0.138889 9 0.111111 10 0.0833333 11 0.0555556 12 0.0277778
Som du kan se, er J kryptisk, men kortfattet .
Svar
Elsker brukernavnet! Vel gjort 🙂
Resultatene du bør telle er terningkastene, alle $ 6 \ ganger 6 = 36 $ av dem som vist i tabellen din.
For eksempel $ \ frac {1} {36} $ av tiden summen er $ 2 $, og $ \ frac {2} {36} $ av tiden summen er $ 3 $, og $ \ frac {4} {36} $ av tiden summen er $ 4 $, og så videre.
Kommentarer
- Jeg ‘ er virkelig forvirret av dette. Jeg svarte på et veldig nylig nybegynnerspørsmål fra noen som heter die_hard, som tilsynelatende ikke lenger eksisterer, og fant svaret mitt knyttet til denne eldgamle tråden!
- Svaret ditt på spørsmålet på stats.stackexchange.com/questions/173434/… ble slått sammen med svarene på dette duplikatet.
Svar
Du kan løse dette med en rekursiv formel. I så fall beregnes sannsynligheten for kastene med $ n $ terning av rullene med $ n-1 $ terning.
$$ a_n (l) = \ sum_ {l-6 \ leq k \ leq l-1 \\ \ text {and} n-1 \ leq k \ leq 6 (n-1)} a_ {n-1} (k) $$
Den første grensen for k in summeringen er de seks foregående tallene. F.eks. Hvis du vil kaste 13 med 3 terninger, kan du gjøre dette hvis de to første terningene dine kaster mellom 7 og 12.
Den andre grensen for k i summeringen er grensene for hva du kan kaste med terning n-1
Utfallet:
1 1 1 1 1 1 1 2 3 4 5 6 5 4 3 2 1 1 3 6 10 15 21 25 27 27 25 21 15 10 6 3 1 1 4 10 20 35 56 80 104 125 140 146 140 125 104 80 56 35 20 10 4 1 1 5 15 35 70 126 205 305 420 540 651 735 780 780 735 651 540 420 305 205 126 70 35 15 5 1
rediger: Svaret ovenfor var et svar fra et annet spørsmål som ble slått sammen til spørsmålet av C.Ross
Koden nedenfor viser hvordan beregningene for det svaret (på spørsmålet om 5 terninger) ble utført i R. De ligner på summasjonene som ble utført i Excel i svaret fra Glen B.
# recursive formula nextdice <- function(n,a,l) { x = 0 for (i in 1:6) { if ((l-i >= n-1) & (l-i<=6*(n-1))) { x = x+a[l-i-(n-2)] } } return(x) } # generating combinations for rolling with up to 5 dices a_1 <- rep(1,6) a_2 <- sapply(2:12,FUN = function(x) {nextdice(2,a_1,x)}) a_3 <- sapply(3:18,FUN = function(x) {nextdice(3,a_2,x)}) a_4 <- sapply(4:24,FUN = function(x) {nextdice(4,a_3,x)}) a_5 <- sapply(5:30,FUN = function(x) {nextdice(5,a_4,x)})
Kommentarer
- @ user67275 spørsmålet ditt ble slått sammen med dette spørsmålet. Men jeg lurer på hva ideen din var bak formelen din: » Jeg brukte formelen: ingen måter å få 8: 5_H_2 = 6_C_2 = 15 » ?
Svar
En tilnærming er å si at sannsynligheten $ X_n = k $ er koeffisienten $ x ^ {k} $ i utvidelsen av genereringsfunksjonen $$ \ left (\ frac {x ^ 6 + x ^ 5 + x ^ 4 + x ^ 3 + x ^ 2 + x ^ 1} {6} \ right) ^ n = \ left (\ frac {x (1-x ^ 6)} {6 (1-x)} \ right) ^ n $$
Så for eksempel med seks terninger og et mål på $ k = 22 $ , finner du $ P (X_6 = 22) = \ frac {10} {6 ^ 6} $. Denne lenken (til et matte.stackexchange-spørsmål) gir også andre tilnærminger
Legg igjen en kommentar