Vous devez générer un parcours de golf de 18 trous au hasard.
Exemple de sortie:
[3 4 3 5 5 4 4 4 5 3 3 4 4 3 4 5 5 4]
Règles:
- Votre programme doit générer une liste de longueurs de trous pour exactement 18 trous
- Chaque trou doit avoir une longueur de 3, 4 ou 5
- La longueur des trous doit atteindre 72 pour tout le parcours
- Votre programme doit être capable de produire toutes les configurations de trous possibles avec une probabilité non nulle (les probabilités de chaque configuration ne doivent pas nécessairement être égales, mais n'hésitez pas à réclamer des félicitations supplémentaires si tel est le cas).
4
, et les seules possibilités sont 3
, 4
ou 5
, les classes solution sont { no 3's or 5's
, one 3 and one 5
, two 3's and two 5's
, ..., nine 3's and nine 5's
}. Ceci peut être calculé par nCr(18,0)*nCr(18,0) + nCr(18,1)*nCr(17,1) + nCr(18,2)*nCr(16,2) + ... + nCr(18,9)*nCr(9,9) = 44,152,809
. Cela signifie qu'environ 11.4%
toutes les combinaisons possibles sont des solutions valides (44,152,809 / 3^18)
.
sum(factorial(18)/factorial(x)/factorial(y)/factorial(z) for x in range(25) for y in range(25) for z in range(25) if 3*x+4*y+5*z == 72 and x+y+z == 18)
donne44152809L