0% ont trouvé ce document utile (0 vote)
57 vues1 page

PlatiniumDog Predictor

Le document présente un code Python qui calcule les probabilités de victoire de chiens basées sur leurs cotes. Il inclut des fonctions pour déterminer les meilleurs chiens à gagner, ainsi que les meilleures combinaisons de trois chiens dans l'ordre et dans le désordre. Un exemple d'utilisation est fourni avec des noms et cotes de chiens, affichant les résultats des calculs.

Transféré par

njara.stephane1
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
57 vues1 page

PlatiniumDog Predictor

Le document présente un code Python qui calcule les probabilités de victoire de chiens basées sur leurs cotes. Il inclut des fonctions pour déterminer les meilleurs chiens à gagner, ainsi que les meilleures combinaisons de trois chiens dans l'ordre et dans le désordre. Un exemple d'utilisation est fourni avec des noms et cotes de chiens, affichant les résultats des calculs.

Transféré par

njara.stephane1
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

import itertools

def calculer_probabilites(noms, cotes):


# Inverser les cotes pour avoir les probabilités implicites
inv_cotes = [1 / cote for cote in cotes]
total = sum(inv_cotes)
probas = [inv / total for inv in inv_cotes]
return probas

def top_vainqueurs(noms, probas, top_n=5):


# Trier les chiens par probabilité décroissante
return sorted(zip(noms, probas), key=lambda x: x[1], reverse=True)[:top_n]

def top_tierces_ordre(noms, probas, top_n=10):


tierces = []
for trio in itertools.permutations(range(len(noms)), 3):
i, j, k = trio
score = probas[i] * 0.5 + probas[j] * 0.3 + probas[k] * 0.2
tierces.append(((noms[i], noms[j], noms[k]), score))
return sorted(tierces, key=lambda x: x[1], reverse=True)[:top_n]

def top_tierces_desordre(noms, probas, top_n=10):


seen = set()
tierces = []
for combo in itertools.permutations(range(len(noms)), 3):
i, j, k = combo
key = tuple(sorted([i, j, k]))
if key in seen:
continue
seen.add(key)
score = probas[i] * 0.5 + probas[j] * 0.3 + probas[k] * 0.2
trio = sorted([noms[i], noms[j], noms[k]])
tierces.append((trio, score))
return sorted(tierces, key=lambda x: x[1], reverse=True)[:top_n]

# Exemple d'utilisation
noms_chiens = ["Chien A", "Chien B", "Chien C", "Chien D", "Chien E", "Chien F"]
cotes_chiens = [3.5, 4.0, 2.8, 6.0, 5.5, 8.0]

probas = calculer_probabilites(noms_chiens, cotes_chiens)

print("🎯 Top 5 chiens probables de gagner :")


for nom, p in top_vainqueurs(noms_chiens, probas):
print(f"{nom} - {p*100:.2f}%")

print("\n🥇 Top 10 tiercés dans l'ordre :")


for i, (trio, score) in enumerate(top_tierces_ordre(noms_chiens, probas), 1):
print(f"{i}. {' > '.join(trio)} — Score: {score:.4f}")

print("\n🎯 Top 10 tiercés dans le désordre :")


for i, (trio, score) in enumerate(top_tierces_desordre(noms_chiens, probas), 1):
print(f"{i}. {', '.join(trio)} — Score: {score:.4f}")

Vous aimerez peut-être aussi