Le code suivant calcule la distribution de probabilité des résultats des deux dés avec un nombre variable de parties égales:Besoin de sortie les 3 premiers résultats de roulement 2 dés, qui ont un nombre variable de parties
def compute_probability_distribution(sides):
dist = {x+y: 0 for x in range(1, sides+1) for y in range(1, sides+1)}
for die_1 in range(1, sides+1):
for die_2 in range(1, sides+1):
dist[die_1+die_2] = dist[die_1+die_2] + 1
probs = dist.items()
print "Prob dist: ", probs
Par exemple, pour les dés à 6 faces ordinaires, le prob dist est [(2,6), (3,2), (4,3), (5,4), (6,5), (7,6), (8,5),) (9,4), (10,3), (11,2), (12,1)], où le premier élément de chaque tuple est la somme des 2 dés, et le second élément est le nombre de façons dont il peut se produire sur un rouleau. Quelqu'un peut-il me dire comment trier la liste de prob prob ci-dessus par le deuxième élément de chaque tuple afin que je puisse sortir les occurrences les plus probables (1 ou 3)? Je pense utiliser le tri de liste intégré avec une sorte de fonction de comparaison.
Votre solution utilisant Counter est intéressante, mais il manque le fait que 2 et 6 soient équiprobables. – CElliott
@CElliott: l'esprit que nous utilisons ici * trois * dés, pas deux. Comment pouvez-vous générer 2 avec trois 5-dés? –
Dans l'état initial du problème, les probs étaient donnés comme [(2,6), (3,2), (4,3), ...]. Le (2,6) était une faute de frappe; mon mauvais, désolé. Par conséquent, votre réponse pour un dé à 6 faces était correcte. Le monde a du sens après tout. – CElliott