9
votes

simulant rouler deux dés

J'essaie de simuler le roulement de deux dés. J'ai utilisé: xxx

et obtenir le résultat attendu. J'ai aussi essayé xxx

et cela fonctionne aussi, mais ceux-ci ressentent un peu "force brute". Y a-t-il un moyen plus facile et plus élégant de le faire?

en termes plus généraux, existe-t-il une fonction qui prend 2 (ou plus) événements indépendants et les opérations sur eux (addition, multiplication)?

r

3 commentaires

Comment la première solution semble-t-elle une force brute ou inélégante? C'est une solution de 1 ligne. Votre problème est-il sur lequel vous ne pouvez pas rouler un nombre arbitraire de dés?


La première solution est assez simple, mais je me demandais s'il existe une fonction qui prend deux événements indépendants et que l'ajout (ou même la multiplication des chaînes de probabilités conditionnelles).


Notez que la fonction de probabilité du résultat de l'ajout de la valeur de deux variables discrètes aléatoires n'est pas une somme, mais la convolution des fonctions de probabilité. Étiez-vous après des façons de faire une convolution? La deuxième chose, où vous multipliez probabilités , pas valeurs est entièrement un genre de chose différent.


3 Réponses :


15
votes

Si votre problème est que vous ne pouvez rouler aucun nombre arbitraire de dés, quelque chose comme: xxx

serait plus flexible.


1 commentaires

Merci, cela permet un nombre arbitraire de dés.



3
votes

Je suis d'accord avec David que rien ne semble particulièrement faux avec votre première option. Une autre façon d'aller peut-être ceci, si vous êtes vraiment juste après la somme des deux dés: xxx


1 commentaires

Notez à soi-même: Doit se souvenir de celui-ci: extérieur (1: 6,1: 6, "+") :-)



3
votes

Il y a une fonction dés dans le package pédéMos qui simule le roulement de dés (et il existe même une option pour tracer les résultats, mais 1000 rouleaux ne feraient pas un complot significatif). Cela peut sembler un peu moins de force brute, mais en interne, il fait semblable à ce qui a déjà été posté. Vous pouvez utiliser Appliquer ou des fonctions associées pour faire des choses comme une somme sur les colonnes du retour.


0 commentaires