¿Cómo determinar fácilmente la distribución de resultados para varios dados?
On febrero 13, 2021 by adminQuiero calcular la distribución de probabilidad para el total de una combinación de dados.
Recuerdo que la probabilidad de es el número de combinaciones que suman ese número sobre el número total de combinaciones (asumiendo que los dados tienen una distribución uniforme).
¿Cuáles son las fórmulas para
- El número total de combinaciones
- El número de combinaciones que suman un cierto número
Comentarios
- Creo que debería tratar $ (X_1 = 1, X_2 = 2) $ y $ (X_1 = 2, X_2 = 1) $ como diferentes eventos.
Respuesta
Soluciones exactas
El número de combinaciones en $ n $ lanzamientos es, por supuesto, $ 6 ^ n $ .
Estos cálculos se realizan más fácilmente usando la función de generación de probabilidad para un dado,
$$ p (x) = x + x ^ 2 + x ^ 3 + x ^ 4 + x ^ 5 + x ^ 6 = x \ frac {1-x ^ 6} {1-x}. $$
(En realidad, esto es $ 6 $ multiplicado por el pgf – Me ocuparé del factor de $ 6 $ al final.)
El pgf para $ n $ rollos es $ p (x) ^ n $ . Podemos calcular esto de manera bastante directa, no es una forma cerrada pero sí útil, usando el teorema del binomio:
$$ p (x ) ^ n = x ^ n (1 – x ^ 6) ^ n (1 – x) ^ {- n} $$
$ $ = x ^ n \ left (\ sum_ {k = 0} ^ {n} {n \ elija k} (-1) ^ kx ^ {6k} \ right) \ left (\ sum_ {j = 0} ^ { \ infty} {-n \ choose j} (-1) ^ jx ^ j \ right). $$
El número de formas de obtener una suma igual a $ m $ en los dados es el coeficiente de $ x ^ m $ en este producto, que podemos aislar como
$$ \ sum_ {6k + j = m – n} {n \ elija k} {- n \ elija j} (- 1) ^ {k + j} . $$
La suma es sobre todos los $ k $ y $ j no negativos $ para el cual $ 6k + j = m – n $ ; por lo tanto, es finito y solo tiene alrededor de $ (m-n) / 6 $ términos. Por ejemplo, el número de formas de totalizar $ m = 14 $ en $ n = 3 $ lanzamientos es una suma de solo dos términos, porque $ 11 = 14-3 $ solo se puede escribir como $ 6 \ cdot 0 + 11 $ y $ 6 \ cdot 1 + 5 $ :
$$ – {3 \ elija 0} {-3 \ elija 11} + {3 \ elija 1} {- 3 \ elija 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 . $$
(También puede ser inteligente y tener en cuenta que la respuesta será la misma para $ m = 7 $ por la simetría 1 < -> 6, 2 < -> 5 y 3 < -> 4 y solo hay una forma de expandir $ 7 – 3 $ como $ 6 k + j $ ; es decir, con $ k = 0 $ y $ j = 4 $ , dando
$$ {3 \ choose 0} {- 3 \ choose 4} = 15 \ text {.} $$
Por lo tanto, la probabilidad es igual $ 15/6 ^ 3 $ = $ 5/36 $ , aproximadamente el 14%.
Para cuando esto se vuelve doloroso, el Teorema del límite central proporciona buenas aproximaciones (al menos a los términos centrales donde $ m $ está entre $ \ frac {7 n} {2} – 3 \ sqrt {n} $ y $ \ frac {7 n} {2} + 3 \ sqrt { n} $ : sobre una base relativa, las aproximaciones que ofrece para los valores de cola empeoran cada vez más a medida que $ n $ crece).
Veo que esta fórmula se da en las referencias de Srikant del artículo de Wikipedia, pero no se proporciona ninguna justificación ni se dan ejemplos. Si tal vez este enfoque parece demasiado abstracto, enciende tu sistema de álgebra de computadora favorito y pídele que expanda la potencia de $ n ^ {\ text {th}} $ de $ x + x ^ 2 + \ cdots + x ^ 6 $ : puede leer todo el conjunto de valores de inmediato. Por ejemplo, , una sola línea de Mathematica es
With[{n=3}, CoefficientList[Expand[(x + x^2 + x^3 + x^4 + x^5 + x^6)^n], x]]
Comentarios
- ¿Funcionará ese código de mathica con wolfram alpha?
- Eso funciona. Probé su versión anterior pero no pude encontrar ningún sentido al resultado.
- @Srikant: Expand [Sum [x ^ i, {i, 1,6}] ^ 3] también funciona en WolframAlpha
- @ A.Wilson Creo que muchas de esas referencias proporcionar una ruta clara a la generalización, que en este ejemplo es $ (x + x ^ 2 + \ cdots + x ^ 6) (x + x ^ 2 + x ^ 3 + x ^ 4) ^ 3 $. Si desea que el código
R
calcule estas cosas, consulte stats.stackexchange.com/a/116913 para obtener una Sistema completamente implementado. Como otro ejemplo, el código de Mathematica esClear[x, d]; d[n_, x_] := Sum[x^i, {i, 1, n}]; d[6, x] d[4, x]^3 // Expand
- Tenga en cuenta que @whuber ‘ La aclaración es para 1d6 + 3d4, y eso debería llevarte allí. Para un wdn + vdm arbitrario, (x + x ^ 2 + … + x ^ w) ^ n (x + x ^ 2 + … + x ^ v) ^ m. Los términos adicionales son polinomios construidos y multiplicados con el producto de la misma manera.
Respuesta
Otra forma más de calcular rápidamente la distribución de probabilidad de una tirada de dados sería utilizar una calculadora especializada diseñada específicamente para ese propósito.
Torben Mogensen , un CS El profesor de DIKU tiene un excelente rodillo de dados llamado Troll .
El rodillo de dados Troll y la calculadora de probabilidad imprimen la distribución de probabilidad (pmf, histograma y, opcionalmente, cdf o ccdf), media, extensión y desviación media para una variedad de complicados mecanismos de tirada de dados. Aquí hay algunos ejemplos que muestran el lenguaje de tirada de dados de Troll:
Tira 3 dados de 6 caras y súmalos: sum 3d6
.
Tira 4 dados de 6 caras, conserva los 3 más altos y súmalos: sum largest 3 4d6
.
Tira un dado «explosivo» de 6 caras (es decir, cualquier cuando aparezca un «6», agregue 6 a su total y vuelva a lanzar): sum (accumulate y:=d6 while y=6)
.
Troll «s SML el código fuente está disponible, si quiere ver cómo se implementa.
El profesor Morgensen también tiene un Documento de 29 páginas, « Mecanismos de lanzamiento de dados en juegos de rol «, en el que analiza muchos de los mecanismos de lanzamiento de dados implementados por Troll y algunas de las matemáticas detrás de ellos.
Una pieza similar de software gratuito de código abierto es Dicelab , que funciona tanto en Linux como en Windows.
Respuesta
Existe una forma muy clara de calcular las combinaciones o probabilidades se encuentra en una hoja de cálculo (como Excel) que calcula las convoluciones directamente.
Lo haré en términos de probabilidades y lo ilustraré para dados de seis caras, pero tú puedes hacerlo para dados con cualquier número de lados (incluido agregar diferentes).
( por cierto, también es fácil en algo como R o matlab que hará convoluciones)
Comience con una hoja limpia, en algunas columnas, y baje un montón de filas desde la parte superior (más de 6) .
-
ponga el valor 1 en una celda. Esas son las probabilidades asociadas con 0 dados. Pon un 0 a su izquierda; esa es la columna de valor – continúa hacia abajo desde allí con 1,2,3 hacia abajo tanto como necesites.
-
mueva una columna a la derecha y una fila hacia abajo desde el «1». ingrese la fórmula «= suma (» luego flecha izquierda hacia arriba (para resaltar la celda con 1), presione «:» (para comenzar a ingresar un rango) y luego flecha hacia arriba 5 veces, seguido de «) / 6 «y presione Entrar, por lo que terminará con una fórmula como
=sum(c4:c9)/6
(donde aquíC9
es la celda con el 1) .Luego copie la fórmula y péguela en las 5 celdas debajo. Cada uno debe contener 0.16667 (ish).
No escriba nada en las celdas vacías de estas fórmulas ¡consulte!
-
Desplácese hacia abajo 1 y hacia la derecha 1 desde la parte superior de esa columna de valores y pegue …
… un total de otros 11 valores. Estas serán las probabilidades para dos dados.
No importa si pega algunas de más, solo obtendrá ceros.
-
repita el paso 3 para la siguiente columna para tres dados, y nuevamente para cuatro, cinco, etc.
Vemos aquí que la probabilidad de sacar $ 12 $ en 4d6 es 0.096451 (si multiplica por $ 4 ^ 6 $ podrá escribirlo como una fracción exacta).
Si es un experto en Excel, cosas como copiar una fórmula de una celda y pegarla en muchas celdas en una columna, puede generar todas las tablas hasta decir 10d6 en aproximadamente un minuto (posiblemente más rápido si lo ha hecho varias veces).
Si desea recuentos combinados en lugar de probabilidades, no divida entre 6.
Si quiere dados con diferentes números de caras, puede sumar $ k $ (en lugar de 6) celdas y luego dividir por $ k $. Puede mezclar dados en columnas (p. Ej.hacer una columna para d6 y otra para d8 para obtener la función de probabilidad para d6 + d8):
Comentarios
- Esto es muy útil para alguien como yo que solo quiere una manera de hacerlo, ¡sin tener que entender! Si no ‘ no le importa la volatilidad de la función
OFFSET()
, puede hacer esta dinámica usando un rango con nombre. Por ejemplo, hice un rango llamadoDiceSize
para contener el número de lados y puse el primer » 1 » probabilidad en B23. Usé un rango dinámico llamado KingSum que se refiere a=OFFSET('Dice Rolls'!$A$22,-1*DiceSize,,DiceSize,1)
. Luego pude usar la fórmula=SUM(OFFSET(KingSum,ROW(A1),COLUMN(A1)))/DiceSize
en la celda C23, arrastrada por todo un área grande para dar una tabla dependiente de DiceSize.
Respuesta
$ \ newcommand {red} {\ color {red}} $ $ \ newcommand {blue} {\ color {blue}} $
Sea el primer dado rojo y el segundo negro. Entonces hay 36 resultados posibles:
\ 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 \ rojo {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 & \ rojo {3}, 4 & \ red {3}, 5 & \ red {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 & \ 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} & \ blue {^ 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 uno de estos 36 ($ \ red {\ text {red}}, \ text {black} $) resultados son igualmente probables.
Cuando sumas los números en las caras (total en $ \ blue {\ text {blue}} $), varios de los resultados (rojo, negro) terminan con el mismo total; puede ver esto con la tabla en su pregunta.
Entonces, por ejemplo, solo hay uno manera de obtener un total de $ 2 $ (es decir solo el evento ($ \ red {1}, 1 $)), pero hay dos formas de obtener $ 3 $ (es decir, los eventos elementales ($ \ red {2}, 1 $) y ($ \ red {1}, 2 $)). Por lo tanto, un total de $ 3 $ tiene el doble de probabilidades de obtener $ 2 $. De manera similar, hay tres formas de obtener $ 4 $, cuatro formas de obtener $ 5 $ y así sucesivamente .
Ahora que tiene 36 resultados posibles (rojo, negro), el número total de formas de obtener todos los totales diferentes también es 36, por lo que debe dividir por 36 al final. Tu probabilidad total será 1, como debería ser.
Comentarios
- ¡Vaya, la mesa es hermosa!
- Muy bonito
Responder
Solución aproximada
Expliqué la solución exacta anteriormente (ver más abajo). A continuación, ofreceré una solución aproximada que se adaptará mejor a sus necesidades.
Sea:
$ X_i $ el resultado de una tirada de dados con cara $ s $ donde $ i = 1, … n $.
$ S $ es el total de todos los $ n $ dados.
$ \ bar {X} $ es el promedio de la muestra.
Por definición, tenemos:
$ \ bar {X} = \ frac {\ sum_iX_i} {n} $
En otras palabras,
$ \ bar {X} = \ frac {S} {n} $
La idea ahora es visualizar el proceso de observar $ {X_i} $ como el resultado de lanzar los mismos dados $ n $ veces en lugar de como resultado de lanzar $ n $ dados. Por lo tanto, podemos invocar el teorema del límite central (ignorando los tecnicismos asociados con pasar de la distribución discreta a la continua), tenemos como $ n \ rightarrow \ infty $:
$ \ bar {X} \ sim N ( \ mu, \ sigma ^ 2 / n) $
donde,
$ \ mu = (s + 1) / 2 $ es la media de la tirada de un solo dado y
$ \ sigma ^ 2 = (s ^ 2-1) / 12 $ es la varianza asociada.
Lo anterior es obviamente una aproximación, ya que la distribución subyacente $ X_i $ tiene discreta apoyo.
Pero,
$ S = n \ bar {X} $.
Por lo tanto, tenemos:
$ S \ sim N (n \ mu, n \ sigma ^ 2) $.
Solución exacta
Wikipedia tiene una breve explicación sobre cómo calcular las probabilidades requeridas. Explicaré un poco más por qué la explicación tiene sentido. En la medida de lo posible, he usado una notación similar a la del artículo de Wikipedia.
Suponga que tiene $ n $ dados cada uno con $ s $ caras y desea calcular la probabilidad de que una sola tirada de todos los $ n $ dado que el total suma $ k $. El enfoque es el siguiente:
Defina:
$ F_ {s, n} (k) $: probabilidad de que obtenga un total de $ k $ en una sola tirada de $ n $ dados con $ s $ caras.
Por definición, tenemos:
$ F_ {s, 1} (k) = \ frac {1} {s} $
Lo anterior establece que si solo tienes un dado con $ s $ enfrenta la probabilidad de obtener un total de $ k $ entre 1 ys es el familiar $ \ frac {1} {s} $.
Considere la situación cuando lanza dos dados: Puede obtener una suma de $ k $ de la siguiente manera: La primera tirada es entre 1 y $ k-1 $ y la tirada correspondiente para el segundo es entre $ k -1 $ a $ 1 $. Por lo tanto, tenemos:
$ F_ {s, 2} (k) = \ sum_ {i = 1} ^ {i = k-1} {F_ {s, 1} (i) F_ { s, 1} (ki)} $
Ahora considere una tirada de tres dados: puede obtener una suma de $ k $ si lanza un 1 a $ k-2 $ en el primer dado y el La suma de los dos dados restantes está entre $ k-1 $ y $ 2 $. Por lo tanto,
$ F_ {s, 3} (k) = \ sum_ {i = 1} ^ {i = k-2} {F_ {s, 1} (i) F_ {s, 2 } (ki)} $
Continuando con la lógica anterior, obtenemos la ecuación de recursión:
$ F_ {s, n} (k) = \ sum_ {i = 1} ^ {i = k-n + 1} {F_ {s, 1} (i) F_ {s, n-1} (ki)} $
Consulte el enlace de Wikipedia para obtener más detalles.
Comentarios
- @Srikant Excelente respuesta, pero ¿esa función se resuelve en algo aritmético (es decir, no recursivo)?
- @C. Ross: Lamentablemente no lo creo. Pero sospecho que la recursividad no debería ser tan difícil siempre que se trate de n y s pequeños razonablemente. Podría simplemente crear una tabla de búsqueda y usarla repetidamente según sea necesario.
- La página de wikipedia que vinculó tiene una fórmula simple no recursiva que es una sola suma. Una derivación está en la respuesta de whuber ‘.
- El enlace del enlace wiki está muerto, ¿conoce un reemplazo?
Respuesta
Esta es en realidad una pregunta sorprendentemente complicada. Por suerte para usted, existe una solución exacta que se explica muy bien aquí:
http://mathworld.wolfram.com/Dice.html
La probabilidad que está buscando viene dada por la ecuación (10): «La probabilidad de obtener p puntos (una tirada de p) en dados de n caras».
En su caso: p = la puntuación observada (suma de todos los dados), n = el número de dados, s = 6 (dados de 6 caras). Esto le da la siguiente función de masa de probabilidad:
$$ 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} $$
Comentarios
- ¡Bienvenido a nuestro sitio, Felix!
Respuesta
Funciones características pueden hacer que los cálculos que involucran las sumas y diferencias de variables aleatorias sean realmente fáciles. Mathematica tiene muchas funciones para trabajar con distribuciones estadísticas, incluida una función incorporada para transformar una distribución en su función característica.
Me gustaría para ilustrar esto con dos ejemplos concretos: (1) Suponga que desea determinar los resultados de lanzar una colección de dados con diferente números de lados, por ejemplo, lanzar dos dados de seis lados más uno de ocho lados morir (es decir, 2d6 + d8 )?O (2) suponga que desea encontrar la diferencia de dos tiradas de dados (p. Ej., d6-d6 ).
Una manera fácil de hacerlo sería usar las funciones características de las distribuciones uniformes discretas subyacentes. Si una variable aleatoria $ X $ tiene una función de masa de probabilidad $ f $, entonces su función característica $ \ varphi_X (t) $ es solo la Transformada de Fourier de $ f $, es decir, $ \ varphi_X (t) = \ mathcal {F} \ {f \} (t) = E [e ^ {it X PS Un teorema nos dice:
Si las variables aleatorias independientes $ X $ y $ Y $ tienen funciones de masa de probabilidad correspondientes $ f $ y $ g $, entonces el pmf $ h $ de la suma $ X + Y $ de estos vehículos recreativos es la convolución de sus pmfs $ h (n) = (f \ ast g) (n) = \ sum_ {m = – \ infty} ^ \ infty f (m) g (nm) $.
Podemos usar la propiedad de convolución de las transformadas de Fourier para reformular esto de manera más simple en términos de funciones características:
La función característica $ \ varphi_ {X + Y} (t) $ de la suma de variables aleatorias independientes $ X $ y $ Y $ es igual al producto de sus funciones características $ \ varphi_ {X} (t) \ varphi_ {Y} (t) $.
Esta función de Mathematica hará la función característica para un dado de lados s:
MakeCf[s_] := Module[{Cf}, Cf := CharacteristicFunction[DiscreteUniformDistribution[{1, s}], t]; Cf]
La pmf de una distribución se puede recuperar de su función característica, porque las transformadas de Fourier son invertibles. Aquí está el código de Mathematica para hacerlo:
RecoverPmf[Cf_] := Module[{F}, F[y_] := SeriesCoefficient[Cf /. t -> -I*Log[x], {x, 0, y}]; F]
Continuando con nuestro ejemplo, sea F el pmf que resulta de 2d6 + d8.
F := RecoverPmf[MakeCf[6]^2 MakeCf[8]]
Hay $ 6 ^ 2 \ cdot 8 = 288 $ resultados. El dominio de soporte de F es $ S = \ {3, \ ldots, 20 \} $. Tres es el mínimo porque estás tirando tres dados. Y veinte es el máximo porque $ 20 = 2 \ cdot 6 + 8 $. Si quieres ver la imagen de F, calcula
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}
Si desea saber el número de resultados que suman 10, calcule
In:= 6^2 8 F[10] Out= 30
Si las variables aleatorias independientes $ X $ y $ Y $ tienen funciones de masa de probabilidad correspondientes $ f $ y $ g $, entonces el pmf $ h $ de la diferencia $ X – Y $ de estos RVs es el correlación cruzada de sus pmfs $ h (n) = (f \ star g) (n) = \ sum_ {m = – \ infty} ^ \ infty f (m) g (n + m) $ .
Podemos usar la propiedad de correlación cruzada de las transformadas de Fourier para reformular esto de manera más simple en términos de funciones características:
La función característica $ \ varphi_ {XY} (t) $ de la diferencia de dos variables aleatorias independientes $ {X, Y} $ es igual al producto de la función característica $ \ varphi_ {X} (t) $ y $ \ varphi_ {Y} (- t) $ (NB el signo negativo delante de la variable t en el segundo cha función racterística).
Entonces, usando Mathematica para encontrar el pmf G de d6-d6:
G := RecoverPmf[MakeCf[6] (MakeCf[6] /. t -> -t)]
Hay $ 6 ^ 2 = 36 $ resultados. El dominio de soporte de G es $ S = \ {- 5, \ ldots, 5 \} $. -5 es el mínimo porque $ -5 = 1-6 $. Y 5 es el máximo porque $ 6-1 = 5 $. Si desea ver la imagen 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}
Comentarios
- Por supuesto, para distribuciones discretas, incluidas las distribuciones de soporte finito (como las que se mencionan aquí), cf es solo la función generadora de probabilidad evaluada en x = exp (it), lo que la convierte en una forma más complicada de codificar la misma información.
- @whuber: Como dices, cf, mgf y pgf son más o menos iguales y fácilmente transformables entre sí, sin embargo, Mathematica tiene un cf incorporado que funciona con todas las distribuciones de probabilidad que conoce, mientras que no ‘ t tiene un pgf incorporado. Esto hace que el código de Mathematica para trabajar con sumas (y diferencias) de dados usando cfs sea particularmente elegante para construir, independientemente de la complejidad de la expresión de dados, como espero haber demostrado anteriormente. Además, no ‘ no está de más saber cómo las cfs, FT, convoluciones y correlaciones cruzadas pueden ayudar a resolver problemas como este.
- @Elisha: Buenos puntos , todos ellos. Supongo que lo que más me pregunto es si sus diez o más líneas de código de Mathematica son realmente más » elegantes » o eficientes que las una sola línea que propuse antes (o la línea aún más corta que Srikant le dio a Wolfram Alpha). Sospecho que las manipulaciones internas con funciones características son más arduas que las simples convoluciones necesarias para multiplicar polinomios. Ciertamente, estos últimos son más fáciles de implementar en la mayoría de los demás entornos de software, como indica la respuesta de Glen_b ‘. La ventaja de su enfoque es su mayor generalidad.
Respuesta
Aquí hay otra forma de calcular la probabilidad distribución de la suma de dos dados a mano mediante convoluciones.
Para mantener el ejemplo realmente simple, vamos a calcular la distribución de probabilidad de la suma de un dado de tres lados (d3) cuya variable aleatoria llamaremos X y un dado de dos lados (d2 ) cuya variable aleatoria llamaremos Y.
Vas a hacer una tabla. En la fila superior, escribe la distribución de probabilidad de X (resultados de sacar un d3 justo). Abajo de la columna izquierda , escribe la distribución de probabilidad de Y (resultados de obtener un d2 justo).
Vas a construir el producto externo del fila superior de probabilidades con la columna izquierda de probabilidades. Por ejemplo, la celda inferior derecha será el producto de Pr [X = 3] = 1/3 por Pr [Y = 2] = 1/2 como se muestra en la figura adjunta. En nuestro ejemplo simplista, todas las celdas equivalen a 1/6.
A continuación, sumará a lo largo de las líneas oblicuas de la matriz del producto externo como se muestra en el diagrama adjunto. Cada línea oblicua pasa por una o más celdas con el mismo color: la línea superior pasa a través de una celda azul, la siguiente línea pasa a través de dos glóbulos rojos, y así sucesivamente.
Cada una de las sumas a lo largo de los oblicuos representa una probabilidad en la distribución resultante. Por ejemplo, la suma de los glóbulos rojos es igual a la probabilidad de que los dos dados sumen 3. Estas probabilidades se muestran en el lado derecho del diagrama adjunto.
Esta técnica se puede usar con dos distribuciones discretas cualesquiera con soporte finito. Y puedes aplicarlo de forma iterativa. Por ejemplo, si desea conocer la distribución de tres dados de seis caras (3d6), primero puede calcular 2d6 = d6 + d6; luego 3d6 = d6 + 2d6.
Existe un lenguaje de programación gratuito (pero con licencia cerrada) llamado J . Es un lenguaje basado en matrices con sus raíces en APL. Tiene operadores incorporados para realizar productos externos y sumas a lo largo de los oblicuos en matrices, lo que hace que la técnica que ilustré sea bastante simple de implementar.
En el siguiente código J, defino dos verbos. Primero, el verbo d
construye una matriz que representa la pmf de un dado de lados s. Por ejemplo, d 6
es el pmf de un dado de 6 lados. En segundo lugar, el verbo conv
encuentra el producto exterior de dos matrices y sumas a lo largo de las líneas oblicuas. Entonces conv~ d 6
imprime el 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 puede ver, J es críptico, pero conciso .
Responder
¡Me encanta el nombre de usuario! Bien hecho 🙂
Los resultados que debe contar son las tiradas de dados, todos $ 6 \ times 6 = 36 $ como se muestra en su tabla.
Por ejemplo, $ \ frac {1} {36} $ del tiempo la suma es $ 2 $, y $ \ frac {2} {36} $ del tiempo la suma es $ 3 $, y $ \ frac {4} {36} $ del tiempo la suma es $ 4 $, y así sucesivamente.
Comentarios
- Estoy ‘ realmente confundido por esta. Respondí una pregunta de novato muy reciente de alguien llamado die_hard, que aparentemente ya no existe, ¡luego encontré mi respuesta adjunta a este antiguo hilo!
- Tu respuesta a la pregunta en stats.stackexchange.com/questions/173434/… se fusionó con las respuestas a este duplicado.
Respuesta
Puede resolver esto con una fórmula recursiva. En ese caso, las probabilidades de las tiradas con $ n $ dados se calculan mediante las tiradas con $ n-1 $ dados.
$$ a_n (l) = \ sum_ {l-6 \ leq k \ leq l-1 \\ \ text {y} n-1 \ leq k \ leq 6 (n-1)} a_ {n-1} (k) $$
El primer límite para k en la suma son los seis números precedentes. Por ejemplo, si quieres sacar 13 con 3 dados, puedes hacerlo si tus dos primeros dados tiran entre 7 y 12.
El segundo límite para k en la suma son los límites de lo que puedes sacar. n-1 dice
El 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: La respuesta anterior fue una respuesta de otra pregunta que C.Ross fusionó con la pregunta
El siguiente código muestra cómo se realizaron los cálculos para esa respuesta (a la pregunta que pide 5 dados) en R. Son similares a las sumas realizadas en Excel en la respuesta 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)})
Comentarios
- @ user67275 su pregunta se fusionó con esta pregunta. Pero me pregunto cuál fue tu idea detrás de tu fórmula: » Usé la fórmula: no hay formas de obtener 8: 5_H_2 = 6_C_2 = 15 » ?
Respuesta
Un enfoque es decir que la probabilidad $ X_n = k $ es el coeficiente de $ x ^ {k} $ en la expansión de la función generadora $$ \ 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 $$
Entonces por ejemplo, con seis dados y un objetivo de $ k = 22 $ , encontrará $ P (X_6 = 22) = \ frac {10} {6 ^ 6} $. Ese enlace (a una pregunta de math.stackexchange) también ofrece otros enfoques
Deja una respuesta