Comment déterminer facilement la distribution des résultats pour plusieurs dés?
On février 13, 2021 by adminJe veux calculer la distribution de probabilité pour le total dune combinaison de dés.
Je me souviens que la probabilité de est le nombre de combinaisons qui totalisent ce nombre sur le nombre total de combinaisons (en supposant que les dés ont une distribution uniforme).
Quelles sont les formules pour
- Le nombre total de combinaisons
- Le nombre de combinaisons totalisant un certain nombre
Commentaires
- Je pense que vous devriez traiter $ (X_1 = 1, X_2 = 2) $ et $ (X_1 = 2, X_2 = 1) $ comme différents événements.
Réponse
Solutions exactes
Le nombre de combinaisons dans $ n $ jette est bien sûr $ 6 ^ n $ .
Ces calculs sont le plus facilement effectués en utilisant la fonction de génération de probabilité pour un dé,
$$ p (x) = x + x ^ 2 + x ^ 3 + x ^ 4 + x ^ 5 + x ^ 6 = x \ frac {1-x ^ 6} {1-x}. $$
(En fait, cest $ 6 $ fois le pgf – je vais moccuper du facteur de $ 6 $ à la fin.)
Le pgf pour les rouleaux de $ n $ est $ p (x) ^ n $ . Nous pouvons calculer cela assez directement – ce nest pas une forme fermée mais cest une forme utile – en utilisant le théorème binomial:
$$ p (x ) ^ n = x ^ n (1 – x ^ 6) ^ n (1 – x) ^ {- n} $$
$ $ = x ^ n \ left (\ sum_ {k = 0} ^ {n} {n \ choose k} (-1) ^ kx ^ {6k} \ right) \ left (\ sum_ {j = 0} ^ { \ infty} {-n \ choose j} (-1) ^ jx ^ j \ right). $$
Le nombre de façons dobtenir une somme égale à $ m $ sur les dés est le coefficient de $ x ^ m $ dans ce produit, que nous pouvons isoler comme
$$ \ sum_ {6k + j = m – n} {n \ choose k} {- n \ choose j} (- 1) ^ {k + j} . $$
La somme est sur tout non négatif $ k $ et $ j $ pour lequel 6k $ + j = m – n $ ; il est donc fini et ne comporte quenviron $ (m-n) / 6 $ termes. Par exemple, le nombre de façons de totaliser $ m = 14 $ dans $ n = 3 $ lancés est une somme de seulement deux termes, car $ 11 = 14-3 $ ne peut être écrit que comme $ 6 \ cdot 0 + 11 $ et $ 6 \ cdot 1 + 5 $ :
$$ – {3 \ choisissez 0} {-3 \ choisissez 11} + {3 \ choisissez 1} {- 3 \ choisissez 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 . $$
(Vous pouvez également être intelligent et noter que la réponse sera la même pour $ m = 7 $ par la symétrie 1 < -> 6, 2 < -> 5 et 3 < -> 4 et il ny a quune seule façon de développer 7 $ – 3 $ comme 6 k $ + j $ ; à savoir, avec $ k = 0 $ et $ j = 4 $ , donnant
$$ {3 \ choose 0} {- 3 \ choose 4} = 15 \ text {.} $$
La probabilité est donc égale 15 $ / 6 ^ 3 $ = 5 $ / 36 $ , environ 14%.
Au moment où cela devient pénible, le théorème central des limites fournit de bonnes approximations (au moins pour les termes centraux où $ m $ est entre $ \ frac {7 n} {2} – 3 \ sqrt {n} $ et $ \ frac {7 n} {2} + 3 \ sqrt { n} $ : sur une base relative, les approximations quil offre pour les valeurs de queue saggravent de plus en plus à mesure que $ n $ grandit).
Je vois que cette formule est donnée dans larticle Wikipedia Srikant références mais aucune justification nest fournie ni des exemples donnés. Si par hasard cette approche semble trop abstraite, lancez votre système dalgèbre informatique préféré et demandez-lui détendre la puissance $ n ^ {\ text {th}} $ de $ x + x ^ 2 + \ cdots + x ^ 6 $ : vous pouvez lire lensemble des valeurs tout de suite. Par exemple , une ligne unique Mathematica est
With[{n=3}, CoefficientList[Expand[(x + x^2 + x^3 + x^4 + x^5 + x^6)^n], x]]
Commentaires
- Ce code mathématique fonctionnera-t-il avec wolfram alpha?
- Cela fonctionne. Jai essayé votre version précédente mais je nai pas pu comprendre le résultat.
- @Srikant: Expand [Sum [x ^ i, {i, 1,6}] ^ 3] fonctionne également dans WolframAlpha
- @ A.Wilson Je crois que beaucoup de ces références fournissez un chemin clair vers la généralisation, qui dans cet exemple est $ (x + x ^ 2 + \ cdots + x ^ 6) (x + x ^ 2 + x ^ 3 + x ^ 4) ^ 3 $. Si vous souhaitez que le code
R
calcule ces éléments, consultez stats.stackexchange.com/a/116913 pour un système entièrement mis en œuvre. Comme autre exemple, le code Mathematica estClear[x, d]; d[n_, x_] := Sum[x^i, {i, 1, n}]; d[6, x] d[4, x]^3 // Expand
- Notez que @whuber ‘ La clarification de s est pour 1d6 + 3d4, et cela devrait vous y amener. Pour un wdn + vdm arbitraire, (x + x ^ 2 + … + x ^ w) ^ n (x + x ^ 2 + … + x ^ v) ^ m. Les termes supplémentaires sont des polynômes construits et multipliés avec le produit de la même manière.
Answer
Encore une autre façon de calculer rapidement la distribution de probabilité dun jet de dés serait dutiliser une calculatrice spécialisée conçue juste à cet effet.
Torben Mogensen , un CS professeur de DIKU a un excellent lanceur de dés appelé Troll .
Le rouleau de dés et le calculateur de probabilité Troll imprime la distribution de probabilité (pmf, histogramme et éventuellement cdf ou ccdf), la moyenne, la propagation et la déviation moyenne pour une variété de mécanismes complexes de lancer de dés. Voici quelques exemples illustrant le langage des lancers de dés de Troll:
Lancez 3 dés à 6 faces et additionnez-les: sum 3d6
.
Lancez 4 dés à 6 faces, gardez les 3 plus hauts et additionnez-les: sum largest 3 4d6
.
Lancez un dé à 6 faces « explosif » (cest-à-dire chaque fois quun « 6 » apparaît, ajoutez 6 à votre total et relancez): sum (accumulate y:=d6 while y=6)
.
Troll « s SML code source est disponible, si vous voulez voir comment il est implémenté.
Le professeur Morgensen a également un Article de 29 pages, « Dice Rolling Mechanisms in RPGs , » dans lequel il discute de nombreux mécanismes de lancer de dés implémentés par Troll et certaines des mathématiques derrière eux.
Un logiciel similaire gratuit et open-source est Dicelab , qui fonctionne à la fois sous Linux et Windows.
Answer
Il existe « une manière très soignée de calculer les combinaisons ou probabil ities dans une feuille de calcul (comme Excel) qui calcule directement les convolutions.
Je vais le faire en termes de probabilités et lillustrer pour des dés à six faces, mais vous pouvez le faire pour des dés avec nimporte quel nombre de faces (y compris en en ajoutant des différents).
( btw cest aussi facile dans quelque chose comme R ou matlab qui fera des convolutions)
Commencez avec une feuille vierge, dans quelques colonnes, et descendez un tas de lignes du haut (plus de 6) .
-
mettre la valeur 1 dans une cellule. Ce sont les probabilités associées aux dés 0. Mettez un 0 à sa gauche; cest la colonne de valeur – continuez à partir de là avec 1,2,3 vers le bas aussi loin que vous le souhaitez.
-
déplacer une colonne vers la droite et une ligne vers le bas à partir du « 1 ». entrez la formule « = somme » (puis flèche gauche vers le haut (pour mettre en surbrillance la cellule contenant 1), appuyez sur « : » (pour commencer à entrer une plage), puis flèche vers le haut 5 fois, suivi de « ) / 6 « et appuyez sur Entrée – vous obtenez donc une formule comme
=sum(c4:c9)/6
(où iciC9
est la cellule avec le 1) .Ensuite, copiez la formule et collez-la dans les 5 cellules en dessous. Ils doivent chacun contenir 0,16667 (ish).
Ne saisissez rien dans les cellules vides de ces formules reportez-vous à!
-
déplacez-vous vers le bas de 1 et vers la droite de 1 à partir du haut de cette colonne de valeurs et collez …
… un total de 11 autres valeurs. Ce seront les probabilités pour deux dés.
Peu importe si vous en collez un peu trop, vous obtiendrez juste des zéros.
-
répétez létape 3 pour la colonne suivante pour trois dés, et encore une fois pour quatre, cinq, etc.
Nous voyons ici que la probabilité de rouler 12 $ sur 4d6 est de 0,096451 (si vous multipliez par 4 $ ^ 6 $, vous pourrez lécrire comme une fraction exacte).
Si vous « maîtrisez Excel – des choses comme copier une formule à partir dune cellule et la coller dans de nombreuses cellules dans une colonne, vous pouvez générer toutes les tables jusquà, disons, 10d6 en une minute environ (peut-être plus rapidement si vous « avez fait plusieurs fois).
Si vous voulez des nombres de combinaisons au lieu de probabilités, ne divisez pas par 6.
Si vous voulez des dés avec différents nombres de faces, vous pouvez additionner $ k $ (au lieu de 6) cellules et ensuite diviser par $ k $. Vous pouvez mélanger les dés dans les colonnes (par exemplefaire une colonne pour d6 et une pour d8 pour obtenir la fonction de probabilité pour d6 + d8):
Commentaires
- Cest très utile pour quelquun comme moi qui veut juste un moyen de le faire, sans avoir à comprendre! Si vous ‘ ne faites pas attention à la volatilité de la fonction
OFFSET()
, vous pouvez rendre cette dynamique en utilisant une plage nommée. Par exemple, jai créé une plage appeléeDiceSize
pour contenir le nombre de côtés et mettre le premier » 1 » probabilité en B23. Jai utilisé une plage nommée dynamique appelée KingSum qui fait référence à=OFFSET('Dice Rolls'!$A$22,-1*DiceSize,,DiceSize,1)
. Je pourrais alors utiliser la formule=SUM(OFFSET(KingSum,ROW(A1),COLUMN(A1)))/DiceSize
dans la cellule C23, faire glisser sur une grande surface pour donner un tableau dépendant de DiceSize.
Réponse
$ \ newcommand {red} {\ color {red}} $ $ \ newcommand {blue} {\ color {blue}} $
Que le premier dé soit rouge et le second noir. Ensuite, il y a 36 résultats possibles:
\ 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 \\ & \ bleu {^ 2} & \ blue {^ 3} & \ blue {^ 4} & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} \\\ hline \ rouge {2} & \ red {2}, 1 & \ red {2}, 2 & \ red {2}, 3 & \ red {2}, 4 & \ red {2}, 5 & \ red {2}, 6 \\ & \ blue {^ 3} & \ bleu {^ 4}
\ blue {^ 5} & \ blue {^ 6} & \ blue { ^ 7} & \ blue {^ 8} \\\ hline \ red {3} & \ red {3}, 1 & \ red {3}, 2 & \ red {3}, 3 & \ rouge {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 } & \ bleu {^ 9} & \ blue {^ {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 \\ & \ bleu {^ 7} & \ blue {^ 8} & \ blue {^ 9} & \ blue {^ {10}} & \ blue {^ {11}} & \ blue {^ {12} } \\\ hline \ end {array}
Chacun des ces 36 résultats ($ \ red {\ text {red}}, \ text {black} $) sont également probables.
Lorsque vous additionnez les nombres sur les faces (total en $ \ blue {\ text {blue}} $), plusieurs des résultats (rouge, noir) finissent avec le même total – vous pouvez le voir avec le tableau de votre question.
Par exemple, il ny en a quun moyen dobtenir un total de 2 $ (c.-à-d. seulement lévénement ($ \ red {1}, 1 $)), mais il existe deux façons dobtenir $ 3 $ (cest-à-dire les événements élémentaires ($ \ red {2}, 1 $) et ($ \ red {1}, 2 $)). Ainsi, un total de 3 $ est deux fois plus susceptible de sélever que 2 $. De même, il existe trois façons dobtenir 4 $, quatre façons dobtenir 5 $ et ainsi de suite .
Maintenant que vous avez 36 résultats possibles (rouge, noir), le nombre total de façons dobtenir tous les différents totaux est également de 36, vous devriez donc diviser par 36 à la fin. Votre probabilité totale sera de 1, comme il se doit.
Commentaires
- Wow, la table est magnifique!
- Très joli en effet
Réponse
Solution approximative
Jai expliqué la solution exacte plus tôt (voir ci-dessous). Je vais maintenant vous proposer une solution approximative qui pourra mieux répondre à vos besoins.
Soit:
$ X_i $ le résultat dun lancer de dés $ s $ face où $ i = 1, … n $.
$ S $ le total de tous les dés $ n $.
$ \ bar {X} $ la moyenne de léchantillon.
Par définition, nous avons:
$ \ bar {X} = \ frac {\ sum_iX_i} {n} $
En dautres termes,
$ \ bar {X} = \ frac {S} {n} $
Lidée est maintenant de visualiser le processus dobservation de $ {X_i} $ comme le résultat de lancer les mêmes dés $ n $ fois au lieu de comme le résultat de lancer $ n $ dés. Ainsi, on peut invoquer le théorème central limite (en ignorant les technicités liées au passage de la distribution discrète au continu), on a comme $ n \ rightarrow \ infty $:
$ \ bar {X} \ sim N ( \ mu, \ sigma ^ 2 / n) $
où,
$ \ mu = (s + 1) / 2 $ est la moyenne du lancer dun seul dé et
$ \ sigma ^ 2 = (s ^ 2-1) / 12 $ est la variance associée.
Ce qui précède est évidemment une approximation car la distribution sous-jacente $ X_i $ est discrète Support.
Mais,
$ S = n \ bar {X} $.
Ainsi, nous avons:
$ S \ sim N (n \ mu, n \ sigma ^ 2) $.
Solution exacte
Wikipedia explique brièvement comment calculer les probabilités requises. Jexpliquerai un peu plus pourquoi cette explication a du sens. Dans la mesure du possible, jai utilisé une notation similaire à larticle de Wikipédia.
Supposons que vous ayez $ n $ dés chacun avec $ s $ faces et que vous vouliez calculer la probabilité quun seul lancer de tous les $ n $ dés le total sélève à $ k $. Lapproche est la suivante:
Définir:
$ F_ {s, n} (k) $: Probabilité dobtenir un total de $ k $ sur un seul jet de $ n $ dés avec $ s $ faces.
Par définition, nous avons:
$ F_ {s, 1} (k) = \ frac {1} {s} $
Ce qui précède indique que si vous navez quun seul dé avec $ s $ faces, la probabilité dobtenir un total $ k $ entre 1 et s est le $ \ frac {1} {s} $ familier.
Considérez la situation lorsque vous lancez deux dés: Vous pouvez obtenir une somme de $ k $ comme suit: Le premier jet est compris entre 1 et $ k-1 $ et le jet correspondant pour le second est compris entre $ k -1 $ à 1 $ $. Ainsi, nous avons:
$ F_ {s, 2} (k) = \ sum_ {i = 1} ^ {i = k-1} {F_ {s, 1} (i) F_ { s, 1} (ki)} $
Considérons maintenant un jet de trois dés: Vous pouvez obtenir une somme de $ k $ si vous lancez un 1 à $ k-2 $ sur les premiers dés et le La somme sur les deux dés restants est comprise entre $ k-1 $ et $ 2 $. Ainsi,
$ F_ {s, 3} (k) = \ sum_ {i = 1} ^ {i = k-2} {F_ {s, 1} (i) F_ {s, 2 } (ki)} $
En poursuivant la logique ci-dessus, nous obtenons léquation de récursivité:
$ F_ {s, n} (k) = \ sum_ {i = 1} ^ {i = k-n + 1} {F_ {s, 1} (i) F_ {s, n-1} (ki)} $
Voir le lien Wikipédia pour plus de détails.
Commentaires
- @Srikant Excellente réponse, mais cette fonction se résout-elle à quelque chose darithmétique (cest-à-dire non récursif)?
- @C. Ross Malheureusement, je ne pense pas. Mais, je soupçonne que la récursivité ne devrait pas être aussi difficile tant que nous avons affaire à des n et des petits s raisonnablement petits. Vous pouvez simplement créer une table de recherche et lutiliser à plusieurs reprises si nécessaire.
- La page wikipedia que vous avez liée a une formule simple non récursive qui est une somme unique. Une dérivation est dans la réponse de whuber ‘.
- Lancre du lien wiki est morte, connaissez-vous un remplacement?
Réponse
Cest en fait une question étonnamment compliquée. Heureusement pour vous, il existe une solution exacte qui est très bien expliquée ici:
http://mathworld.wolfram.com/Dice.html
La probabilité que vous recherchez est donnée par léquation (10): « La probabilité dobtenir p points (un jet de p) sur n dés à deux faces ».
Dans votre cas: p = le score observé (somme de tous les dés), n = le nombre de dés, s = 6 (dés à 6 faces). Cela vous donne la fonction de masse de probabilité suivante:
$$ 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} $$
Commentaires
- Bienvenue sur notre site, Felix!
Réponse
Les fonctions caractéristiques peuvent rendre les calculs impliquant les sommes et les différences des variables aléatoires vraiment faciles. Mathematica a beaucoup de fonctions pour travailler avec des distributions statistiques, y compris une fonction intégrée pour transformer une distribution en sa fonction caractéristique.
Jaimerais pour illustrer cela avec deux exemples concrets: (1) Supposons que vous vouliez déterminer les résultats de lancer une collection de dés avec un nombre différent de côtés, par exemple, lancez deux dés à six faces plus un à huit faces mourir (cest-à-dire 2d6 + d8 )?Ou (2) supposons que vous vouliez trouver la différence entre deux lancers de dés (par exemple, d6-d6 )?
Un moyen simple de le faire serait dutiliser les fonctions caractéristiques des distributions uniformes discrètes sous-jacentes. Si une variable aléatoire $ X $ a une fonction de probabilité de masse $ f $, alors sa fonction caractéristique $ \ varphi_X (t) $ est simplement le discret Transformée de Fourier de $ f $, soit $ \ varphi_X (t) = \ mathcal {F} \ {f \} (t) = E [e ^ {it X }] $. Un théorème nous dit:
Si les variables aléatoires indépendantes $ X $ et $ Y $ ont des fonctions de masse de probabilité correspondantes $ f $ et $ g $, alors le pmf $ h $ de la somme $ X + Y $ de ces RV est la convolution de leur pmfs $ h (n) = (f \ ast g) (n) = \ sum_ {m = – \ infty} ^ \ infty f (m) g (nm) $.
Nous pouvons utiliser la propriété de convolution des transformées de Fourier pour reformuler cela plus simplement en termes de fonctions caractéristiques:
La fonction caractéristique $ \ varphi_ {X + Y} (t) $ de la somme des variables aléatoires indépendantes $ X $ et $ Y $ est égale au produit de leurs fonctions caractéristiques $ \ varphi_ {X} (t) \ varphi_ {Y} (t) $.
Cette fonction Mathematica fera la fonction caractéristique pour un dé à deux faces:
MakeCf[s_] := Module[{Cf}, Cf := CharacteristicFunction[DiscreteUniformDistribution[{1, s}], t]; Cf]
Le pmf dune distribution peut être récupéré à partir de sa fonction caractéristique, car les transformées de Fourier sont inversibles. Voici le code Mathematica pour le faire:
RecoverPmf[Cf_] := Module[{F}, F[y_] := SeriesCoefficient[Cf /. t -> -I*Log[x], {x, 0, y}]; F]
En poursuivant notre exemple, soit F le pmf qui résulte de 2d6 + d8.
F := RecoverPmf[MakeCf[6]^2 MakeCf[8]]
Il y a $ 6 ^ 2 \ cdot 8 = 288 $ résultats. Le domaine de support de F est $ S = \ {3, \ ldots, 20 \} $. Trois est le min parce que vous « lancez trois dés. Et vingt est le max parce que $ 20 = 2 \ cdot 6 + 8 $. Si vous voulez voir limage de F, calculez
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 vous voulez connaître le nombre de résultats qui totalisent 10, calculez
In:= 6^2 8 F[10] Out= 30
Si les variables aléatoires indépendantes $ X $ et $ Y $ ont des fonctions de masse de probabilité correspondantes $ f $ et $ g $, alors le pmf $ h $ de la différence $ X – Y $ de ces RV est le corrélation croisée de leurs pmfs $ h (n) = (f \ star g) (n) = \ sum_ {m = – \ infty} ^ \ infty f (m) g (n + m) $ .
Nous pouvons utiliser la propriété de corrélation croisée des transformées de Fourier pour reformuler cela plus simplement en termes de fonctions caractéristiques:
La fonction caractéristique $ \ varphi_ {XY} (t) $ de la différence de deux variables aléatoires indépendantes $ {X, Y} $ est égal au produit de la fonction caractéristique $ \ varphi_ {X} (t) $ et $ \ varphi_ {Y} (- t) $ (NB le signe négatif devant la variable t dans le deuxième cha fonction caractéristique).
Donc, en utilisant Mathematica pour trouver le pmf G de d6-d6:
G := RecoverPmf[MakeCf[6] (MakeCf[6] /. t -> -t)]
Il y a des résultats $ 6 ^ 2 = 36 $. Le domaine de support de G est $ S = \ {- 5, \ ldots, 5 \} $. -5 est le min car $ -5 = 1-6 $. Et 5 est le maximum car 6-1 $ = 5 $. Si vous voulez voir limage de G, calculez
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}
Commentaires
- Bien sûr, pour distributions discrètes, y compris les distributions de support fini (comme celles en question ici), le cf est juste la fonction génératrice de probabilité évaluée à x = exp (it), ce qui en fait une manière plus compliquée dencoder la même information.
- @whuber: Comme vous le dites, cf, mgf et pgf sont plus ou moins identiques et facilement transformables lun en lautre, cependant Mathematica a un cf intégré qui fonctionne avec toutes les distributions de probabilité quil connaît, alors quil ‘ na pas de pgf intégré. Cela rend le code Mathematica pour travailler avec des sommes (et des différences) de dés à laide de cfs particulièrement élégant à construire, quelle que soit la complexité de lexpression des dés, comme jespère lavoir démontré ci-dessus. De plus, il nest ‘ pas mal de savoir comment les cfs, les FT, les convolutions et les corrélations croisées peuvent aider à résoudre des problèmes comme celui-ci.
- @Elisha: Bons points , tous. Je suppose que ce que je me demande le plus est de savoir si vos dix lignes de code Mathematica sont vraiment plus » élégantes » ligne unique que jai proposée plus tôt (ou la ligne encore plus courte que Srikant a donnée à Wolfram Alpha). Je soupçonne que les manipulations internes avec des fonctions caractéristiques sont plus ardues que les simples convolutions nécessaires pour multiplier les polynômes. Certes, ces derniers sont plus faciles à implémenter dans la plupart des autres environnements logiciels, comme lindique la réponse de Glen_b ‘. Lavantage de votre approche est sa plus grande généralité.
Réponse
Voici une autre façon de calculer la probabilité distribution de la somme de deux dés à la main à laide de convolutions.
Pour garder lexemple vraiment simple, nous allons calculer la distribution de probabilité de la somme dun dé à trois côtés (d3) dont nous appellerons la variable aléatoire X et un dé à deux côtés (d2 ) dont nous appellerons la variable aléatoire Y.
Vous allez créer un tableau. Sur la ligne du haut, écrivez la distribution de probabilité de X (résultats de rouler un bon d3). En bas de la colonne de gauche , écrivez la distribution de probabilité de Y (résultats de rouler un bon d2).
Vous allez construire le produit extérieur du rangée supérieure de probabilités avec la colonne de gauche de probabilités. Par exemple, la cellule en bas à droite sera le produit de Pr [X = 3] = 1/3 fois Pr [Y = 2] = 1/2 comme indiqué dans la figure ci-jointe. Dans notre exemple simpliste, toutes les cellules sont égales à 1/6.
Ensuite, vous allez faire la somme le long des lignes obliques de la matrice du produit externe comme indiqué dans le diagramme ci-joint. Chaque ligne oblique passe par une ou plusieurs cellules que jai « colorées de la même manière: la ligne du haut passe par une cellule bleue, la ligne suivante passe par deux cellules rouges, et ainsi de suite.
Chacune des sommes le long des obliques représente une probabilité dans la distribution résultante. Par exemple, la somme des globules rouges est égale à la probabilité de sommation des deux dés à 3. Ces probabilités sont indiquées sur le côté droit du diagramme ci-joint.
Cette technique peut être utilisée avec deux distributions discrètes quelconques avec un support fini. Et vous pouvez lappliquer de manière itérative. Par exemple, si vous voulez connaître la distribution de trois dés à six faces (3d6), vous pouvez dabord calculer 2d6 = d6 + d6; puis 3d6 = d6 + 2d6.
Il existe un langage de programmation libre (mais sous licence fermée) appelé J . Cest un langage basé sur des tableaux avec ses racines dans APL. Il a des opérateurs intégrés pour effectuer des produits externes et des sommes le long des obliques dans les matrices, ce qui rend la technique que jai illustrée assez simple à implémenter.
Dans le code J suivant, je définis deux verbes. Tout dabord, le verbe d
construit un tableau représentant le pmf dun dé à deux faces. Par exemple, d 6
est le pmf dun dé à 6 faces. Deuxièmement, le verbe conv
trouve le produit extérieur de deux tableaux et fait la somme le long des lignes obliques. Donc conv~ d 6
imprime le 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
Comme vous pouvez le voir, J est cryptique, mais laconique .
Réponse
Jadore le nom dutilisateur! Bravo 🙂
Les résultats que vous devriez compter sont les lancers de dés, tous à 6 $ \ fois 6 = 36 $ comme indiqué dans votre tableau.
Par exemple, $ \ frac {1} {36} $ du temps la somme est $ 2 $, et $ \ frac {2} {36} $ du temps la somme est $ 3 $, et $ \ frac {4} {36} $ du temps la somme est de 4 $ $, et ainsi de suite.
Commentaires
- Je ‘ je suis vraiment confus par ce. Jai répondu à une question de débutant très récente dune personne appelée die_hard, qui nexiste apparemment plus, puis jai trouvé ma réponse attachée à ce fil ancien!
- Votre réponse à la question à stats.stackexchange.com/questions/173434/… a été fusionné avec les réponses à ce doublon.
Réponse
Vous pouvez résoudre ce problème avec une formule récursive. Dans ce cas, les probabilités des lancers avec $ n $ dés sont calculées par les lancers avec $ n-1 $ dés.
$$ a_n (l) = \ sum_ {l-6 \ leq k \ leq l-1 \\ \ text {et} n-1 \ leq k \ leq 6 (n-1)} a_ {n-1} (k) $$
La première limite pour k dans la somme sont les six nombres précédents. Par exemple, si vous voulez lancer 13 avec 3 dés, vous pouvez le faire si vos deux premiers dés lancent entre 7 et 12.
La deuxième limite pour k dans la sommation est les limites de ce avec quoi vous pouvez lancer n-1 dés
Le résultat:
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
modifier: La réponse ci-dessus était une réponse de une autre question qui a été fusionnée dans la question par C.Ross
Le code ci-dessous montre comment les calculs pour cette réponse (à la question demandant 5 dés) ont été effectués dans R. Ils sont similaires aux sommations effectuées dans Excel dans la réponse 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)})
Commentaires
- @ user67275 votre question a été fusionnée avec cette question. Mais je me demande quelle était votre idée derrière votre formule: » Jai utilisé la formule: aucun moyen dobtenir 8: 5_H_2 = 6_C_2 = 15 » ?
Réponse
Une approche consiste à dire que la probabilité $ X_n = k $ est le coefficient de $ x ^ {k} $ dans le développement de la fonction génératrice $$ \ 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 $$
Donc par exemple avec six dés et une cible de $ k = 22 $ , vous trouverez $ P (X_6 = 22) = \ frac {10} {6 ^ 6} $. Ce lien (vers une question math.stackexchange) donne également dautres approches
Laisser un commentaire