Mastermind에 대한 코드 골프 과제 만 찾을 수 있었으므로 여기에 내가 가지고 싶었던 코드 도전 버전이 있습니다.
일반적인 마스터 마인드 게임 MM (4,6)에 대한 최적의 전략은 1993 년 Koyama와 Lai에서 발견되었으며 평균 추측 횟수는 5625/1296 ~ 4.34입니다. MM (5,8)은 여전히 해결되지 않았지만 평균 추측 횟수는 ~ 5.5 인 것으로 추정됩니다.
당신의 임무는 pow(8,5) = 32768
가능한 모든 뚜렷한 솔루션을 다루는 5 개의 구멍과 8 개의 색을위한 MM (5,8) 전략을 만드는 것입니다. 분명히, 그것은 최적의 것이 될 필요는 없습니다. 두 가지 선택이 있습니다.
- 전략을 생성하는 결정 론적 프로그램을 게시하십시오. 프로그램은 추가 소프트웨어가 아닌 Windows 7, Mac OS X 또는 Linux에서 컴파일 / 실행 가능해야합니다.
- 인터넷 어딘가에 전략을 StackExchange 이름과 함께 게시하고 여기에 URL을 게시하십시오.
두 경우 모두, 답변 헤더에 점수 (아래 참조)를 기재하십시오.
전략은 다음 문법에 따라 인코딩되어야합니다.
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'
흑백 키 페그 수를 결정하는 데 사용되는 알고리즘은 http://en.wikipedia.org/wiki/Mastermind_(board_game)에 설명되어 있습니다 .
회신 "50"(즉, 정확한 추측)은 암시적이고 문법의 일부가 아닙니다.
스코어링 : N = 32768 개의 경로 / 솔루션 각각에 대한 추측 횟수의 합. N이 가장 낮은 전략이 이깁니다. 첫 타이-브레이크 : 가장 낮은 최대 추측 수입니다. 두 번째 동점 : 첫 번째로 게시 된 답변입니다. 대회는 2014 년 8 월 1 일 0:00 GMT로 종료됩니다 .
점수 = 21 인 MM (2,3)에 대한 전략의 예 :
{AB:{10:{AC:{10:AA,01:CB,00:BB}},02:BA,01:{BC:{01:CA}},00:CC}}
이 전략을 사용하면 가능한 9 가지 게임은 다음과 같습니다.
- 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
귀하의 편의를 위해 Java 기반 MM (5,8) 전략 검증 도구를 곧 게시하겠습니다.
{AB:{10|01:BB}}
? 내가 대답을 할 수 있지만, 그것은 (전혀 아니라 4 개 홀, 3 색을 확장하지 않는 문법의 트리 구조 꽤 순진 인해입니다, 내가 줄일 수있는 147메가바이트 전략, 생성 크게 의 부품을 결합하여을 나무).