私は、Mastermindのコードゴルフチャレンジしか見つけることができなかったので、ここに、自分が挑戦したいコードチャレンジバージョンを示します。
通常の首謀者ゲームの最適な戦略であるMM(4,6)は、1993年に小山とライによって発見され、平均推測数= 5625/1296〜4.34でした。MM(5,8)はまだ解決されていませんが、推測の平均数は5.5であると推定されます。
あなたの仕事は、MM(5,8)戦略を作成することです。これは、5つの穴と8つの色に対応し、すべてのpow(8,5) = 32768
可能な個別のソリューションをカバーします。明らかに、最適なものである必要はありません。次の2つの選択肢があります。
- 戦略を生成する決定論的プログラムを投稿します。このプログラムは、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が最小の戦略が勝利します。最初のタイブレーク:推測の最小最大数。2番目のタイブレーク:最初に投稿された回答。コンテストは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メガバイトの戦略を生成し、大幅の部品を組み合わせることにより、ツリー)。