Como determinar facilmente a distribuição de resultados para vários dados?
On Fevereiro 13, 2021 by adminDesejo calcular a distribuição de probabilidade para o total de uma combinação de dados.
Lembro-me que a probabilidade de é o número de combinações que somam esse número sobre o número total de combinações (assumindo que os dados têm uma distribuição uniforme).
Quais são as fórmulas para
- O número de combinações total
- O número de combinações que totalizam um certo número
Comentários
- Acho que você deve tratar $ (X_1 = 1, X_2 = 2) $ e $ (X_1 = 2, X_2 = 1) $ como diferentes eventos.
Resposta
Soluções exatas
O número de combinações em $ n $ lançamentos é, obviamente, $ 6 ^ n $ .
Esses cálculos são feitos mais facilmente usando a função de geração de probabilidade para um dado,
$$ p (x) = x + x ^ 2 + x ^ 3 + x ^ 4 + x ^ 5 + x ^ 6 = x \ frac {1-x ^ 6} {1-x}. $$
(Na verdade, isso é $ 6 $ vezes o pgf – cuidarei do fator de $ 6 $ no final.)
O pgf para $ n $ rolos é $ p (x) ^ n $ . Podemos calcular isso de forma bastante direta – não é uma forma fechada, mas é útil – usando o Teorema Binomial:
$$ p (x ) ^ n = x ^ n (1 – x ^ 6) ^ n (1 – x) ^ {- n} $$
$ $ = x ^ n \ left (\ sum_ {k = 0} ^ {n} {n \ escolha k} (-1) ^ kx ^ {6k} \ right) \ left (\ sum_ {j = 0} ^ { \ infty} {-n \ choose j} (-1) ^ jx ^ j \ right). $$
O número de maneiras de obter uma soma igual a $ m $ nos dados é o coeficiente de $ x ^ m $ neste produto, que podemos isolar como
$$ \ sum_ {6k + j = m – n} {n \ escolha k} {- n \ escolha j} (- 1) ^ {k + j} . $$
A soma é globalmente não negativa $ k $ e $ j $ para o qual $ 6k + j = m – n $ ; portanto, é finito e tem apenas cerca de $ (m-n) / 6 $ termos. Por exemplo, o número de maneiras de totalizar $ m = 14 $ em $ n = 3 $ lançamentos é uma soma de apenas dois termos, porque $ 11 = 14-3 $ pode ser escrito apenas como $ 6 \ cdot 0 + 11 $ e $ 6 \ cdot 1 + 5 $ :
$$ – {3 \ escolha 0} {-3 \ escolha 11} + {3 \ escolha 1} {- 3 \ escolha 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 . $$
(Você também pode ser inteligente e notar que a resposta será a mesma para $ m = 7 $ por a simetria 1 < -> 6, 2 < -> 5 e 3 < -> 4 e só há uma maneira de expandir $ 7 – 3 $ como $ 6 k + j $ ; a saber, com $ k = 0 $ e $ j = 4 $ , dando
$$ {3 \ choose 0} {- 3 \ choose 4} = 15 \ text {.} $$
Portanto, a probabilidade é igual $ 15/6 ^ 3 $ = $ 5/36 $ , cerca de 14%.
No momento em que isso se torna doloroso, o Teorema do Limite Central fornece boas aproximações (pelo menos para os termos centrais em que $ m $ está entre $ \ frac {7 n} {2} – 3 \ sqrt {n} $ e $ \ frac {7 n} {2} + 3 \ sqrt { n} $ : em uma base relativa, as aproximações que ele oferece para os valores finais ficam cada vez piores conforme $ n $ cresce).
Vejo que esta fórmula é fornecida nas referências de Srikant do artigo da Wikipedia, mas nenhuma justificativa é fornecida nem são fornecidos exemplos. Se por acaso essa abordagem parecer muito abstrata, acione seu sistema de álgebra computacional favorito e peça a ele para expandir o $ n ^ {\ text {th}} $ poder de $ x + x ^ 2 + \ cdots + x ^ 6 $ : você pode ler todo o conjunto de valores imediatamente. Por exemplo, , uma linha única do Mathematica é
With[{n=3}, CoefficientList[Expand[(x + x^2 + x^3 + x^4 + x^5 + x^6)^n], x]]
Comentários
- Esse código mathematica funcionará com wolfram alpha?
- Isso funciona. Tentei sua versão anterior, mas não consegui entender o resultado.
- @Srikant: Expand [Sum [x ^ i, {i, 1,6}] ^ 3] também funciona em WolframAlpha
- @ A.Wilson, acredito que muitas dessas referências fornece um caminho claro para a generalização, que neste exemplo é $ (x + x ^ 2 + \ cdots + x ^ 6) (x + x ^ 2 + x ^ 3 + x ^ 4) ^ 3 $. Se desejar que o código
R
calcule essas coisas, consulte stats.stackexchange.com/a/116913 para obter um sistema totalmente implementado. Como outro exemplo, o código do Mathematica éClear[x, d]; d[n_, x_] := Sum[x^i, {i, 1, n}]; d[6, x] d[4, x]^3 // Expand
- Observe que @whuber ‘ O esclarecimento é para 1d6 + 3d4, e isso deve levar você até lá. Para um wdn + vdm arbitrário, (x + x ^ 2 + … + x ^ w) ^ n (x + x ^ 2 + … + x ^ v) ^ m. Termos adicionais são polinômios construídos e multiplicados com o produto da mesma maneira.
Resposta
Mais uma maneira de calcular rapidamente a distribuição de probabilidade de um lançamento de dados seria usar uma calculadora especializada projetada apenas para esse propósito.
Torben Mogensen , um CS professor da DIKU tem um excelente lançador de dados chamado Troll .
O rolo de dados Troll e calculadora de probabilidade imprime a distribuição de probabilidade (pmf, histograma e, opcionalmente, cdf ou ccdf), média, propagação e desvio médio para uma variedade de mecanismos complicados de lançamento de dados. Aqui estão alguns exemplos que mostram a linguagem de lançamento de dados de Troll:
Role 3 dados de 6 lados e some-os: sum 3d6
.
Jogue 4 dados de 6 lados, mantenha os 3 mais altos e some-os: sum largest 3 4d6
.
Jogue um dado “explosivo” de 6 lados (ou seja, qualquer vez que um “6” surgir, some 6 ao seu total e role novamente): sum (accumulate y:=d6 while y=6)
.
Troll “s SML código-fonte está disponível, se você quiser ver como é implementado.
O professor Morgensen também tem um Artigo de 29 páginas, “ Mecanismos de lançamento de dados em RPGs ,” no qual ele discute muitos dos mecanismos de lançamento de dados implementados por Troll e algumas das matemáticas por trás deles.
Um software de código aberto gratuito semelhante é o Dicelab , que funciona em Linux e Windows.
Resposta
Há uma maneira muito simples de calcular as combinações ou probabilidades em uma planilha (como o Excel) que calcula as convoluções diretamente.
Farei isso em termos de probabilidades e ilustrarei para dados de seis lados, mas você pode fazer isso para dados com qualquer número de lados (incluindo a adição de diferentes).
( aliás, também é fácil em algo como R ou matlab que fará convoluções)
Comece com uma folha em branco, em algumas colunas, e vá para baixo em várias linhas a partir do topo (mais de 6) .
-
coloque o valor 1 em uma célula. Essas são as probabilidades associadas ao dado 0. Coloque um 0 à sua esquerda; essa é a coluna de valor – continue para baixo a partir daí com 1,2,3 para baixo até onde você precisar.
-
move uma coluna para a direita e uma linha para baixo a partir do “1”. insira a fórmula “= soma (” depois seta para a esquerda seta para cima (para destacar a célula com 1), pressione “:” (para começar a inserir um intervalo) e, em seguida, seta para cima 5 vezes, seguido por “) / 6 “e pressione Enter – então você termina com uma fórmula como
=sum(c4:c9)/6
(onde aquiC9
é a célula com o 1) .Em seguida, copie a fórmula e cole-a nas 5 células abaixo dela. Cada um deve conter 0,16667 (ish).
Não digite nada nas células vazias dessas fórmulas consulte!
-
mova para baixo 1 e para a direita 1 do topo dessa coluna de valores e cole …
… um total de outros 11 valores. Estas serão as probabilidades para dois dados.
Não importa se você colar alguns a mais, você receberá apenas zeros.
-
repita a etapa 3 para a próxima coluna para três dados e novamente para quatro, cinco, etc. dados.
Vemos aqui que a probabilidade de rolar $ 12 $ em 4d6 é 0,096451 (se você multiplicar por $ 4 ^ 6 $, poderá escrevê-lo como uma fração exata).
Se você “é adepto do Excel – coisas como copiar uma fórmula de uma célula e colar em várias células em uma coluna, você pode gerar todas as tabelas, digamos, 10d6 em cerca de um minuto ou mais (possivelmente mais rápido se você tiver feito isso algumas vezes).
Se você quiser contagens de combinação em vez de probabilidades, não divida por 6.
Se você quiser dados com diferentes números de faces, pode somar $ k $ (em vez de 6) células e depois dividir por $ k $. Você pode misturar dados em colunas (por exemplofaça uma coluna para d6 e uma para d8 para obter a função de probabilidade para d6 + d8):
Comentários
- Isso é muito útil para alguém como eu, que só quer uma maneira de fazer, sem ter que entender! Se você não ‘ não se importar com a volatilidade da função
OFFSET()
, poderá torná-la dinâmica usando um intervalo nomeado. Por exemplo, eu fiz um intervalo chamadoDiceSize
para conter o número de lados e coloquei o primeiro ” 1 ” probabilidade em B23. Usei um intervalo de nome dinâmico chamado KingSum que se refere a=OFFSET('Dice Rolls'!$A$22,-1*DiceSize,,DiceSize,1)
. Eu poderia então usar a fórmula=SUM(OFFSET(KingSum,ROW(A1),COLUMN(A1)))/DiceSize
na célula C23, arrastada por uma grande área para fornecer uma tabela dependente do DiceSize.
Resposta
$ \ newcommand {red} {\ color {red}} $ $ \ newcommand {blue} {\ color {blue}} $
Seja o primeiro dado vermelho e o segundo preto. Então, há 36 resultados possíveis:
\ 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 & \ red {1}, 5 & \ red {1}, 6 \\ & \ azul {^ 2} & \ blue {^ 3} & \ blue {^ 4} & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} \\\ hline \ vermelho {2} & \ red {2}, 1 & \ red {2}, 2 & \ red {2}, 3 & \ red {2}, 4 & \ red {2}, 5 & \ red {2}, 6 \\ & \ blue {^ 3} & \ blue {^ 4}
\ blue {^ 5} & \ blue {^ 6} & \ blue { ^ 7} & \ blue {^ 8} \\\ hline \ red {3} & \ red {3}, 1 & \ red {3}, 2 & \ red {3}, 3 & \ vermelho {3}, 4 & \ red {3}, 5 & \ red {3}, 6 \\ & \ blue {^ 4} & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} & \ blue {^ 8} & \ azul {^ 9} \\\ hline \ red {4} & \ red {4}, 1 & \ red {4}, 2 & \ red {4}, 3 & \ red {4}, 4 & \ red {4}, 5 & \ red {4}, 6 \\ & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} & \ blue {^ 8 } & \ azul {^ 9} & \ azul {^ {10}} \\\ hline \ red {5} & \ red {5 }, 1 & \ red {5}, 2 & \ red {5}, 3 & \ red {5}, 4 & \ red {5}, 5 & \ red {5}, 6 \\ & \ blue {^ 6} & \ blue {^ 7} & \ azul {^ 8} & \ blue {^ 9} & \ blue {^ {10}} & \ blue {^ {11}} \\\ hline \ red {6} & \ red {6}, 1 & \ red {6}, 2 & \ red {6}, 3 & \ red {6}, 4 & \ red {6}, 5 & \ red {6}, 6 \\ & \ azul {^ 7} & \ blue {^ 8} & \ blue {^ 9} & \ blue {^ {10}} & \ blue {^ {11}} & \ blue {^ {12} } \\\ hline \ end {array}
Cada um dos esses 36 resultados ($ \ red {\ text {red}}, \ text {black} $) são igualmente prováveis.
Quando você soma os números nas faces (total em $ \ blue {\ text {blue}} $), vários dos resultados (vermelho, preto) terminam com o mesmo total – você pode ver isso com a tabela em sua pergunta.
Então, por exemplo, há apenas um forma de obter um total de $ 2 $ (ou seja apenas o evento ($ \ red {1}, 1 $)), mas há duas maneiras de obter $ 3 $ (ou seja, os eventos elementares ($ \ red {2}, 1 $) e ($ \ red {1}, 2 $)). Portanto, um total de $ 3 $ tem duas vezes mais probabilidade de resultar do que $ 2 $. Da mesma forma, há três maneiras de obter $ 4 $, quatro maneiras de obter $ 5 $ e assim por diante .
Agora, como você tem 36 resultados possíveis (vermelho, preto), o número total de maneiras de obter todos os totais diferentes também é 36, então você deve dividir por 36 no final. Sua probabilidade total será 1, como deveria ser.
Comentários
- Uau, a mesa é linda!
- Muito bonito, de fato
Resposta
Solução aproximada
Eu expliquei a solução exata anteriormente (veja abaixo). Oferecerei agora uma solução aproximada que pode atender melhor às suas necessidades.
Seja:
$ X_i $ o resultado de um lançamento de um dado $ s $ enfrentado onde $ i = 1, … n $.
$ S $ seja o total de todos os $ n $ dados.
$ \ bar {X} $ seja a média da amostra.
Por definição, temos:
$ \ bar {X} = \ frac {\ sum_iX_i} {n} $
Em outras palavras,
$ \ bar {X} = \ frac {S} {n} $
A ideia agora é visualizar o processo de observar $ {X_i} $ como o resultado de lançar os mesmos dados $ n $ vezes em vez de como resultado de lançar $ n $ dados. Assim, podemos invocar o teorema do limite central (ignorando os aspectos técnicos associados à passagem da distribuição discreta para a contínua), temos como $ n \ rightarrow \ infty $:
$ \ bar {X} \ sim N ( \ mu, \ sigma ^ 2 / n) $
onde,
$ \ mu = (s + 1) / 2 $ é a média do lançamento de um único dado e
$ \ sigma ^ 2 = (s ^ 2-1) / 12 $ é a variância associada.
O acima é obviamente uma aproximação, pois a distribuição subjacente $ X_i $ tem discreta Apoio, suporte.
Mas,
$ S = n \ bar {X} $.
Assim, temos:
$ S \ sim N (n \ mu, n \ sigma ^ 2) $.
Solução exata
Wikipedia tem uma breve explicação sobre como calcular as probabilidades necessárias. Vou elaborar um pouco mais porque a explicação ali faz sentido. Na medida do possível, usei notação semelhante ao artigo da Wikipedia.
Suponha que você tenha $ n $ dados cada um com $ s $ faces e queira calcular a probabilidade de que um único lançamento de todos os $ n $ dice o total soma $ k $. A abordagem é a seguinte:
Defina:
$ F_ {s, n} (k) $: probabilidade de obter um total de $ k $ em um único lançamento de $ n $ dices com $ s $ faces.
Por definição, temos:
$ F_ {s, 1} (k) = \ frac {1} {s} $
O acima afirma que, se você tiver apenas um dado com $ s $, a probabilidade de obter um total de $ k $ entre 1 e s é o familiar $ \ frac {1} {s} $.
Considere a situação quando você lança dois dados: Você pode obter uma soma de $ k $ da seguinte forma: O primeiro lançamento está entre 1 a $ k-1 $ e o lançamento correspondente para o segundo está entre $ k -1 $ a $ 1 $. Assim, temos:
$ F_ {s, 2} (k) = \ sum_ {i = 1} ^ {i = k-1} {F_ {s, 1} (i) F_ { s, 1} (ki)} $
Agora, considere um lançamento de três dados: Você pode obter uma soma de $ k $ se lançar de 1 a $ k-2 $ no primeiro dado e no soma nos dois dados restantes está entre $ k-1 $ a $ 2 $. Assim,
$ F_ {s, 3} (k) = \ sum_ {i = 1} ^ {i = k-2} {F_ {s, 1} (i) F_ {s, 2 } (ki)} $
Continuando a lógica acima, obtemos a equação de recursão:
$ F_ {s, n} (k) = \ sum_ {i = 1} ^ {i = k-n + 1} {F_ {s, 1} (i) F_ {s, n-1} (ki)} $
Consulte o link da Wikipedia para mais detalhes.
Comentários
- @Srikant Excelente resposta, mas essa função se transforma em algo aritmético (ou seja: não recursivo)?
- @C. Ross: Infelizmente, acho que não. Porém, eu suspeito que a recursão não deve ser tão difícil, desde que lidemos com n e s razoavelmente pequenos. Você poderia simplesmente construir uma tabela de pesquisa e usá-la repetidamente conforme necessário.
- A página da Wikipedia que você vinculou tem uma fórmula não recursiva simples que é uma soma única. Uma derivação está na resposta whuber ‘.
- A âncora do link wiki está morta, você conhece uma substituição?
Resposta
Esta é, na verdade, uma pergunta surpreendentemente complicada. Felizmente para você, existe uma solução exata que é muito bem explicada aqui:
http://mathworld.wolfram.com/Dice.html
A probabilidade que você está procurando é dada pela equação (10): “A probabilidade de obter p pontos (um lançamento de p) em dados n lados”.
No seu caso: p = a pontuação observada (soma de todos os dados), n = o número de dados, s = 6 (dados de 6 lados). Isso fornece a seguinte função de massa de probabilidade:
$$ P (X_n = p) = \ frac {1} {s ^ n} \ sum_ {k = 0} ^ {\ lfloor (pn) / 6 \ rfloor} (-1) ^ k {n \ choose k} {p-6k-1 \ choose n-1} $$
Comentários
- Bem-vindo ao nosso site, Felix!
Resposta
Funções características podem tornar os cálculos envolvendo as somas e diferenças de variáveis aleatórias realmente fáceis. Mathematica tem muitas funções para trabalhar com distribuições estatísticas, incluindo um embutido para transformar uma distribuição em sua função característica.
Eu gostaria para ilustrar isso com dois exemplos concretos: (1) Suponha que você queira determinar os resultados de lançar uma coleção de dados com números diferentes de lados, por exemplo, lance dois dados de seis lados mais um de oito lados morrer (ou seja, 2d6 + d8 )?Ou (2) suponha que você queira encontrar a diferença de dois lançamentos de dados (por exemplo, d6-d6 )?
Uma maneira fácil de fazer isso seria usar as funções características das distribuições uniformes discretas subjacentes. Se uma variável aleatória $ X $ tiver uma função de massa de probabilidade $ f $, então sua função característica $ \ varphi_X (t) $ é apenas a Transformada de Fourier de $ f $, ou seja, $ \ varphi_X (t) = \ mathcal {F} \ {f \} (t) = E [e ^ {it X }] $. Um teorema nos diz:
Se as variáveis aleatórias independentes $ X $ e $ Y $ têm funções de massa de probabilidade correspondentes $ f $ e $ g $, então o pmf $ h $ da soma $ X + Y $ desses RVs é a convolução de seus pmfs $ h (n) = (f \ ast g) (n) = \ sum_ {m = – \ infty} ^ \ infty f (m) g (nm) $.
Podemos usar a propriedade de convolução das transformadas de Fourier para reafirmar isso de forma mais simples em termos de funções características:
A função característica $ \ varphi_ {X + Y} (t) $ da soma das variáveis aleatórias independentes $ X $ e $ Y $ é igual ao produto de suas funções características $ \ varphi_ {X} (t) \ varphi_ {Y} (t) $.
Esta função do Mathematica fará a função característica para um dado com os lados:
MakeCf[s_] := Module[{Cf}, Cf := CharacteristicFunction[DiscreteUniformDistribution[{1, s}], t]; Cf]
O pmf de uma distribuição pode ser recuperado de sua função característica, porque as transformadas de Fourier são invertíveis. Aqui está o código do Mathematica para fazer isso:
RecoverPmf[Cf_] := Module[{F}, F[y_] := SeriesCoefficient[Cf /. t -> -I*Log[x], {x, 0, y}]; F]
Continuando nosso exemplo, seja F o pmf que resulta de 2d6 + d8.
F := RecoverPmf[MakeCf[6]^2 MakeCf[8]]
Existem $ 6 ^ 2 \ cdot 8 = 288 $ resultados. O domínio de suporte de F é $ S = \ {3, \ ldots, 20 \} $. Três é o mínimo porque você está lançando três dados. E vinte é o máximo porque $ 20 = 2 \ cdot 6 + 8 $. Se você deseja ver a imagem de F, calcule
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}
Se você quiser saber o número de resultados que somam 10, calcule
In:= 6^2 8 F[10] Out= 30
Se as variáveis aleatórias independentes $ X $ e $ Y $ têm funções de massa de probabilidade correspondentes $ f $ e $ g $, então o pmf $ h $ da diferença $ X – Y $ desses RVs é o correlação cruzada de seus pmfs $ h (n) = (f \ star g) (n) = \ sum_ {m = – \ infty} ^ \ infty f (m) g (n + m) $ .
Podemos usar a propriedade de correlação cruzada das transformadas de Fourier para reafirmar isso de forma mais simples em termos de funções características:
A função característica $ \ varphi_ {XY} (t) $ da diferença de duas variáveis aleatórias independentes $ {X, Y} $ é igual ao produto da função característica $ \ varphi_ {X} (t) $ e $ \ varphi_ {Y} (- t) $ (NB o sinal negativo na frente da variável t no segundo cha função característica).
Então, usando o Mathematica para encontrar o pmf G de d6-d6:
G := RecoverPmf[MakeCf[6] (MakeCf[6] /. t -> -t)]
Existem $ 6 ^ 2 = 36 $ resultados. O domínio de suporte de G é $ S = \ {- 5, \ ldots, 5 \} $. -5 é o mínimo porque $ -5 = 1-6 $. E 5 é o máximo porque $ 6-1 = 5 $. Se você quiser ver a imagem de G, calcule
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}
Comentários
- Claro, para distribuições discretas, incluindo distribuições de suporte finito (como aquelas em questão aqui), o cf é apenas a função geradora de probabilidade avaliada em x = exp (it), tornando-se uma maneira mais complicada de codificar as mesmas informações.
- @whuber: Como você diz, cf, mgf e pgf são mais ou menos iguais e facilmente transformáveis um no outro, no entanto, o Mathematica tem um cf embutido que funciona com todas as distribuições de probabilidade que conhece, enquanto não ‘ não tem pgf embutido. Isso torna o código do Mathematica para trabalhar com somas (e diferenças) de dados usando cfs particularmente elegante de construir, independentemente da complexidade da expressão dos dados, como espero ter demonstrado acima. Além disso, não ‘ não custa saber como cfs, FTs, convoluções e correlações cruzadas podem ajudar a resolver problemas como este.
- @Elisha: Pontos positivos , todos eles. Acho que o que mais me pergunto é se suas dez ou mais linhas de código do Mathematica são realmente mais ” elegantes ” ou eficientes do que o única linha que propus anteriormente (ou a linha ainda mais curta Srikant alimentou o Wolfram Alpha). Suspeito que as manipulações internas com funções características sejam mais árduas do que as simples convoluções necessárias para multiplicar polinômios. Certamente, os últimos são mais fáceis de implementar na maioria dos outros ambientes de software, como indica a resposta de Glen_b ‘. A vantagem de sua abordagem é sua maior generalidade.
Resposta
Esta é outra maneira de calcular a probabilidade distribuição da soma de dois dados manualmente usando convoluções.
Para manter o exemplo realmente simples, vamos calcular a distribuição de probabilidade da soma de um dado de três lados (d3), cuja variável aleatória chamaremos de X e um dado de dois lados (d2 ) cuja variável aleatória chamaremos de Y.
Você vai fazer uma tabela. Na linha superior, escreva a distribuição de probabilidade de X (resultados de rolar um d3 razoável). , escreva a distribuição de probabilidade de Y (resultados de rolar um d2 justo).
Você vai construir o produto externo do linha superior de probabilidades com a coluna esquerda de probabilidades. Por exemplo, a célula inferior direita será o produto de Pr [X = 3] = 1/3 vezes Pr [Y = 2] = 1/2, conforme mostrado na figura a seguir. Em nosso exemplo simplista, todas as células são iguais a 1/6.
Em seguida, você vai somar ao longo das linhas oblíquas da matriz do produto externo, conforme mostrado no diagrama a seguir. Cada linha oblíqua passa por uma ou mais células que eu colori da mesma forma: a linha superior passa por uma célula azul, a próxima linha passa por duas células vermelhas e assim por diante.
Cada uma das somas ao longo dos oblíquos representa uma probabilidade na distribuição resultante. Por exemplo, a soma das células vermelhas é igual à probabilidade de os dois dados somarem 3. Essas probabilidades são mostradas no lado direito do diagrama a seguir.
Esta técnica pode ser usada com quaisquer duas distribuições discretas com suporte finito. E você pode aplicá-lo iterativamente. Por exemplo, se você quiser saber a distribuição de três dados de seis lados (3d6), você pode primeiro calcular 2d6 = d6 + d6; então 3d6 = d6 + 2d6.
Existe uma linguagem de programação gratuita (mas com licença fechada) chamada J . É uma linguagem baseada em array com raízes no APL. Ele tem operadores embutidos para realizar produtos externos e somas ao longo dos oblíquos em matrizes, tornando a técnica que ilustrei bastante simples de implementar.
No código J a seguir, defino dois verbos. Primeiro, o verbo d
constrói uma matriz que representa o pmf de um dado com os lados. Por exemplo, d 6
é o pmf de um dado de 6 lados. Em segundo lugar, o verbo conv
encontra o produto externo de duas matrizes e soma ao longo das linhas oblíquas. Portanto, conv~ d 6
imprime o pmf de 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
Como você pode ver, J é enigmático, mas conciso .
Resposta
Adorei o nome de usuário! Muito bem 🙂
Os resultados que você deve contar são os lançamentos de dados, todos $ 6 \ vezes 6 = 36 $ deles, conforme mostrado em sua tabela.
Por exemplo, $ \ frac {1} {36} $ das vezes a soma é $ 2 $ e $ \ frac {2} {36} $ das vezes a soma é $ 3 $, e $ \ frac {4} {36} $ das vezes a soma é $ 4 $ e assim por diante.
Comentários
- Eu ‘ estou realmente confuso com esta. Eu respondi a uma pergunta de novato muito recente de alguém chamado die_hard, que aparentemente não existe mais, então encontrei minha resposta anexada a este antigo tópico!
- Sua resposta à pergunta em stats.stackexchange.com/questions/173434/… foi mesclado com as respostas a esta duplicata.
Resposta
Você pode resolver isso com uma fórmula recursiva. Nesse caso, as probabilidades dos lançamentos com $ n $ dados são calculados pelos lançamentos com $ n-1 $ dados.
$$ a_n (l) = \ sum_ {l-6 \ leq k \ leq l-1 \\ \ text {e} n-1 \ leq k \ leq 6 (n-1)} a_ {n-1} (k) $$
O primeiro limite para k em a soma são os seis números anteriores. Por exemplo, se você quiser lançar 13 com 3 dados, então você pode fazer isso se seus primeiros dois dados rolarem entre 7 e 12.
O segundo limite para k na soma são os limites do que você pode rolar dados n-1
O resultado:
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
editar: a resposta acima foi uma resposta de outra pergunta que foi mesclada na pergunta de C.Ross
O código abaixo mostra como os cálculos para essa resposta (para a pergunta que pede 5 dados) foram realizados em R. Eles são semelhantes às somas realizadas no Excel na resposta de 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)})
Comentários
- @ user67275 sua pergunta foi mesclada com esta pergunta. Mas eu me pergunto qual foi a sua ideia por trás da sua fórmula: ” Usei a fórmula: nenhuma maneira de obter 8: 5_H_2 = 6_C_2 = 15 ” ?
Resposta
Uma abordagem é dizer que a probabilidade $ X_n = k $ é o coeficiente de $ x ^ {k} $ na expansão da função geradora $$ \ 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 $$
Então por exemplo, com seis dados e um alvo de $ k = 22 $ , você encontrará $ P (X_6 = 22) = \ frac {10} {6 ^ 6} $. Esse link (para uma questão math.stackexchange) também fornece outras abordagens
Deixe uma resposta