首页 > 解决方案 > 如何设计一种算法以(几乎)总是在 Kayles 游戏中获胜(正常游戏约定)

问题描述

我遇到了一个算法设计问题,它设计了一个算法(几乎)总是在 Kayles 游戏中获胜,即目标是如果一个人先赢,那么目标是总是赢,如果第二个赢,则有最好的机会赢。游戏规则是,一排瓶,每个瓶都有一个索引,两个玩家轮流击倒他们,一个玩家每回合可以击倒一个或两个瓶,如果有两个瓶要被被击倒,它们必须是相邻的,例如,如果有1、2、3、4四个引脚,2和3是倒下的,那么1和4不是相邻的,而是1和2, 2 和 3 等。击倒最后一个引脚的玩家获胜

问题的提示是通过布尔数组表示引脚,输入可能包括对手最后一步的索引或索引。

我在网上做过一些关于这个游戏的研究,但目前我只知道先走的玩家总是可以赢的,方法是去掉中间的引脚,将引脚分成两组,然后在另一组中模仿对手的动作. 我也知道,如果一个是第二个,最好的策略是大致创建偶数组引脚,例如1101101110111,它有两对组,然后在一对组中模仿对手的动作。但我不太确定如何从这里设计算法。

感谢您阅读这里!

标签: algorithm

解决方案


推荐阅读