Bạn được yêu cầu tạo ra một sân golf 18 lỗ ngẫu nhiên.
Ví dụ đầu ra:
[3 4 3 5 5 4 4 4 5 3 3 4 4 3 4 5 5 4]
Quy tắc:
- Chương trình của bạn phải xuất ra một danh sách các độ dài lỗ cho chính xác 18 lỗ
- Mỗi lỗ phải có chiều dài 3, 4 hoặc 5
- Độ dài lỗ phải thêm tối đa 72 cho toàn bộ khóa học
- Chương trình của bạn phải có khả năng tạo ra mọi cấu hình lỗ có thể với một số xác suất khác không (xác suất của mỗi cấu hình không cần bằng nhau, nhưng hãy thoải mái yêu cầu thêm kudos nếu đây là trường hợp)
4
, và các khả năng chỉ là 3
, 4
hoặc 5
, các lớp học có thể giải pháp là { 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
}. Điều này có thể được tính bằng 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
. Điều này có nghĩa là khoảng 11.4%
tất cả các kết hợp có thể là giải pháp hợp lệ (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)
cho44152809L