- 最后登录
- 2013-3-25
- 在线时间
- 345 小时
- 阅读权限
- 10
- 注册时间
- 2009-8-5
- 积分
- 80
- 帖子
- 65
- 精华
- 0
- UID
- 107099
- 性别
- 保密
- 积分
- 80
- 帖子
- 65
- 精华
- 0
- UID
- 107099
- 性别
- 保密
|
nim值法的优势在于,通过子游戏的值能很快得到母游戏的值。
在两维的情况下,一次操作并不一定会把整个棋盘变成两个或多个互不相关的子游戏。
所以计算nim值的计算量并不小,可能仅比穷举稍微少一点点。
但是nim值法仍然有其优势,就是当两个人用多个棋盘下棋时,直接把nim值异或就可以解决。
考虑了一下两维甚至多维的编程:把棋盘上的一格对应到两进制数的一位,如果允许下在某格,那么该位为1;如果不允许下在某格,那么该位为0;这样,任何棋盘状态都能一一对应到非负整数。每下一手,是把数字中若干位从1变成0。
用这个状态编码的方式编程,应该并不困难,也不容易出错。 |
|