Dans le cadres de mon TPE, je suis amené à faire le test du poker sur la fonction randint() de python.
Ce test travail par bloc de 4 nombres qu'il classe dans une des catégorie suivante :
- les quatres chiffres sont différents. probabilité = 0,504
- il y a une pair et deux chiffres différents. probabilité=0,432
- il y a deux pair. probabilité=0,027
- il y a 3 chiffres identiques. probabilité=0,036
- il y a 4 chiffres identiques. probabilité=0,001
Ce lien explique comment il est réalisé et explique d'où viennent les probabilitées : https://univers-ti-nspire.fr/files/pdf/ ... -TNS21.pdf
J'arrive très bien a avoir une liste final avec le nombre de fois qu’apparaît chaque configuration mais je n'arrive pas à en tiré les probabilités.
Les chiffres que je trouve sont très loin des probabilité théoriques auquel c'est sensé se rapproché.
Voici l'algorithme écris sur le lien précédent : https://www.noelshack.com/2018-05-3-151 ... 201427.png
Et voici mon code actuel écris en python :
Code : Tout sélectionner
from random import randint
from functools import reduce
from operator import mul
def poker(nbChiffre=1000):
'''Test du poker'''
count = {"AAAA":0,"AAAB":0,"AABB":0,"AABC":0,"ABCD":0}
values = [[randint(0,9),randint(0,9),randint(0,9),randint(0,9)] for i in range(nbChiffre//4)] # Je remplis une liste de paquet contenant 4 chiffres aléatoires
for paquet in values:
# Je test la configuration du paquet et j'ajoute un a la clé correspondante dans le dictionnaire
paquet = [paquet.count(valeurPaquet) for valeurPaquet in paquet]
paquet = reduce(mul,paquet)
if paquet == 1:
count["ABCD"]+=1
elif paquet == 4:
count["AABC"]+=1
elif paquet == 16:
count["AABB"]+=1
elif paquet == 27:
count["AAAB"]+=1
elif paquet == 256:
count["AAAA"]+=1
return count # retourne le dictionnaire avec les effectifs pour chaque configuration (donc pas une probabilité)
Merci par avance de votre aide,
Simon