Kansspel wielrennen
- Berichten: 2.403
Re: Kansspel wielrennen
In het wielrennen is het inderdaad wel belangrijk om risico's te nemen om een rit of klassieker te kunnen winnen, wat leidt tot een grote standaarddeviatie op de prestatie: als een gek naar beneden rijden van de Poggio met het risico op een valpartij en geen resultaat, op de Galibier al weggaan met het risico om ter plaatse gelaten te worden op Alpe d'Huez of in Parijs Roubaix wielen steken die het net houden, maar toch goed bollen. Om te kunnen winnen is het dikwijls alles of niks spelen.
- Berichten: 2.403
Re: Kansspel wielrennen
De bovenste formule wordt heel lang als je ze gebruikt voor 20 renners. Daarom zou het handig zijn ze dan op te stellen met een lus. Dan wordt de code merkelijk korter en flexibeler. Dat is wat ik bedoel.
-
- Berichten: 23
Re: Kansspel wielrennen
@wnvl1 Dat was wat ik bedoelde inderdaad, dat ik 20x door die 5 renners moet loopen. Echter heb ik geen idee hoe ik dat zou moeten doen, zonder dat het een enorme formule wordt. Ik begreep trouwens ook niet helemaal waarom de renners en de kansen in een Python dictionary staan, is dat een vereiste voor die itertools.permutations ofzo?
- Berichten: 2.403
Re: Kansspel wielrennen
Zo werkt de code met een variabel aantal renners. Je hoeft geen dictionary te gebruiken.
Code: Selecteer alles
import itertools
import matplotlib.pyplot as plt
dictKansenRenners = {
"renner 1": 0.3,
"renner 2": 0.25,
"renner 3": 0.20,
"renner 4": 0.15,
"renner 5": 0.05,
"renner 6": 0.05
}
listUitslagen = []
for i in list(itertools.permutations(dictKansenRenners.keys())):
kans = 1
for j in range(len(dictKansenRenners)):
temp1 = 0
for k in range(j,len(dictKansenRenners)):
temp1 += dictKansenRenners[i[k]]
kans = kans * dictKansenRenners[i[j]] / temp1
listUitslagen.append([i, kans])
uitslagenRenner = [0]*len(dictKansenRenners)
fig, axs = plt.subplots(len(dictKansenRenners))
for index, renner in enumerate(dictKansenRenners.keys()):
for i in listUitslagen:
for j in range(len(dictKansenRenners)):
if i[0][j] == renner:
uitslagenRenner[j] += i[1]
print(uitslagenRenner)
# creating the bar plot
axs[index].bar(range(1, len(dictKansenRenners)+1), uitslagenRenner, color='orange', width=0.4)
axs[index].set_title(renner)
uitslagenRenner = [0]*len(dictKansenRenners)
plt.show()