Tôi chỉ có thể tìm thấy các thử thách chơi gôn mã cho Mastermind, vì vậy đây là phiên bản thử thách mã mà tôi muốn tự mình thực hiện.
Một chiến lược tối ưu cho trò chơi Mastermind bình thường, MM (4,6), đã được Koyama và Lai tìm thấy vào năm 1993, có số lần đoán trung bình = 5625/1296 ~ 4,34. MM (5,8) vẫn chưa được giải quyết, nhưng ước tính có số lần đoán trung bình ~ 5,5.
Nhiệm vụ của bạn là tạo ra một chiến lược MM (5,8), dành cho 5 lỗ và 8 màu, bao gồm tất cả các pow(8,5) = 32768
giải pháp khác biệt có thể. Rõ ràng, nó không phải là một tối ưu. Bạn có hai lựa chọn:
- Đăng một chương trình xác định tạo ra chiến lược. Chương trình phải có thể biên dịch / chạy được trên Windows 7, Mac OS X hoặc Linux mà không cần thêm bất kỳ phần mềm miễn phí nào.
- Xuất bản chiến lược của bạn (cùng với tên StackExchange của bạn) ở đâu đó trên Internet và đăng URL tại đây.
Trong cả hai trường hợp, hãy nêu điểm số (xem bên dưới) trong tiêu đề của câu trả lời.
Chiến lược phải được mã hóa theo ngữ pháp sau:
strategy : guessing-strategy | known-solution-strategy
guessing-strategy : '{' guess ':' branches '}'
known-solution-strategy : guess
guess : color color color color color
color : 'A'..'H'
branches : '{' branch (',' branch)* '}'
branch : reply ':' strategy
reply : number-of-blacks number-of-whites
number-of-blacks : number-of-key-pegs
number-of-whites : number-of-key-pegs
number-of-key-pegs : '0'..'5'
Thuật toán được sử dụng để quyết định số lượng chốt khóa đen / trắng được mô tả trong http://en.wikipedia.org/wiki/Mastermind_(board_game)
Lưu ý rằng câu trả lời "50" (nghĩa là đoán đúng) được ngụ ý và không phải là một phần của ngữ pháp.
Chấm điểm: N = tổng số lần đoán cho mỗi trong số 32768 đường dẫn / giải pháp. Chiến lược với N thấp nhất sẽ thắng. Tie-break đầu tiên: Số lần đoán tối đa thấp nhất. Tie-break thứ hai: Câu trả lời đầu tiên được đăng. Cuộc thi kết thúc vào ngày 1 tháng 8 năm 2014 0:00 GMT .
Một ví dụ về chiến lược cho MM (2,3) với số điểm = 21:
{AB:{10:{AC:{10:AA,01:CB,00:BB}},02:BA,01:{BC:{01:CA}},00:CC}}
Sử dụng chiến lược này, 9 trò chơi có thể sẽ diễn ra như sau:
- AB 20
- AB 10, AC 20
- AB 10, AC 10, AA 20
- AB 10, AC 01, CB 20
- AB 10, AC 00, BB 20
- AB 02, BA 20
- AB 01, BC 20
- AB 01, BC 01, CA 20
- AB 00, CC 20
Tôi sẽ sớm đăng một trình xác minh chiến lược MM (5,8) dựa trên Java để thuận tiện cho bạn.
{AB:{10|01:BB}}
? Tôi có một câu trả lời, nhưng nó khá ngây thơ và do cấu trúc cây của ngữ pháp nên nó không có quy mô tốt (4 lỗ, 3 màu, tạo ra một chiến lược 147 MB, mà tôi có thể cắt giảm đáng kể bằng cách kết hợp các phần của cái cây).