임의의 18 홀 골프 코스를 생성해야합니다.
출력 예 :
[3 4 3 5 5 4 4 4 5 3 3 4 4 3 4 5 5 4]
규칙 :
- 프로그램은 정확히 18 홀에 대한 홀 길이 목록을 출력해야합니다
- 각 구멍의 길이는 3, 4 또는 5 여야합니다
- 전체 코스의 홀 길이는 최대 72
- 프로그램은 가능성이 0이 아닌 가능한 모든 구멍 구성을 생성 할 수 있어야합니다 (각 구성의 확률은 같을 필요는 없지만,이 경우 추가 칭찬을 자유롭게 요구하십시오)
4
, 유일한 가능성은 3
, 4
또는 5
, 가능한 해결책 클래스이다 { 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
}. 이것은로 계산할 수 있습니다 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
. 이는 11.4%
가능한 모든 조합 중 유효한 솔루션 임을 의미 합니다 (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)
제공44152809L