【发布时间】:2010-09-01 14:06:00
【问题描述】:
给定一个任意的钉子接龙棋盘配置,计算导致“游戏结束”位置的任何一系列移动的最有效方法是什么。
例如,标准起始位置是:
..***..
..***..
*******
***O***
*******
..***..
..***..
而“结束游戏”的位置是:
..OOO..
..OOO..
OOOOOOO
OOO*OOO
OOOOOOO
..OOO..
..OOO..
此处更详细地描述了 Peg solitare:Wikipedia,我们正在考虑“英文板”变体。
我很确定,在一台合理的计算机上,比如 P4 3Ghz,只需几秒钟就可以解决任何给定的起始板。
目前这是我最好的策略:
def solve:
for every possible move:
make the move.
if we haven't seen a rotation or flip of this board before:
solve()
if solved: return
undo the move.
【问题讨论】:
-
这是作业,还是面试题?
-
@Nathon 我在中学,这既不是作业也不是面试问题。只是我挖出来的东西,我觉得很奇怪。
标签: language-agnostic dynamic-programming game-theory