Você é obrigado a gerar um campo de golfe aleatório de 18 buracos.
Exemplo de saída:
[3 4 3 5 5 4 4 4 5 3 3 4 4 3 4 5 5 4]
Regras:
- Seu programa deve gerar uma lista de comprimentos de orifícios para exatamente 18 orifícios
- Cada orifício deve ter um comprimento de 3, 4 ou 5
- Os comprimentos dos furos devem somar 72 em todo o percurso
- Seu programa deve ser capaz de produzir todas as configurações de furos possíveis com uma probabilidade diferente de zero (as probabilidades de cada configuração não precisam ser iguais, mas fique à vontade para pedir elogios extras, se for o caso)
4
, e as únicas possibilidades são 3
, 4
ou 5
, a possível solução aulas são { 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
}. Isso pode ser calculado por 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
. Isso significa que aproximadamente 11.4%
todas as combinações possíveis são soluções válidas (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)
dá44152809L