- 注册时间
- 2007-12-27
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 41471
- 在线时间
- 小时
|
发表于 2008-9-17 22:22:21
|
显示全部楼层
类似49#过程,我们需要依次找出所有
f(x)=0但是g(x)!=0的状态x以及f(x)!=0但是g(x)=0的状态x
首先我们知道f(O*1)=0,f(E*1)=1但是g(E*1)=0,g(O*1)=1.所以状态O*1和E*1对应的f,g函数不匹配。
所以所有可以到达O*1和E*1的状态都需要重新计算,也就是我们需要重新计算
2+O*1,2+E*1,3+O*1,3+E*1,4+O*1,4+E*1
首先计算f(2)=1,g(2)=2所以两者都不是0,我们认为匹配,同样f(2+1)=2,g(2+1)=3也匹配,
同样f(2+O*1)=2,g(2+O*1)=s(2)^s(1)=3也匹配,f(2+E*1)=3,g(2+E*1)=s(2)=2也匹配(都不是0)
所以我们直接删除状态2+O*1和2+E*1.
同样状态3,3+O*1,3+E*1也不需要继续考虑。
所以只余下状态4+O*1,4+E*1需要考虑 (前面唯一不匹配的规律只有f(O*1)=0,f(E*1)!=0)
我们可以得到f(4+E*1)=0!=g(4+E*1)=s(4)=1,f(4+O*1)=1!=g(4+O*1)=s(4)^s(1)=1
也就是我们需要添加规律f(4+E*1)=0,f(4+O*1)!=0,然后需要继续查看所有可以到达4+E*1,4+O*1的状态。
这些状态有4+2+O*1,4+2+E*1,4+3+O*1,4+3+E*1,2*4+O*1,2*4+E*1,5+E*1,5+O*1,6+E*1,6+O*1,7+E*1,7+O*1
同样可以淘汰4+2+O*1,4+2+E*1,4+3+O*1,4+3+E*1.
然后我们得出f(2*4+O*1)=0!=g(2*4+O*1)=s(1)=1,f(2*4+E*1)=1!=g(2*4+E*1)=0
所以状态2*4+O*1和2*4+E*1也属于不匹配状态,为此我们需要添加所有可以到达2*4+E*1和2*4+O*1的状态,得出
2*4+2+E*1,2*4+2+E*1,2*4+3+O*1,2*4+3+E*1,3*4+O*1,3*4+E*1,5+4+E*1,5+4+O*1,6+4+E*1,6+4+O*1,7+4+E*1,7+4+O*1
同样可以直接淘汰2*4+2+E*1,2*4+2+E*1,2*4+3+O*1,2*4+3+E*1
并且得出3*4+O*1,3*4+E*1不匹配。
进一步我们可以得出所有O*(4+1)和E*(4+1)不匹配,需要添加规则f(O*(4+1))=0,f(E*(4+1))=1
而且我们需要添加需要检查的状态
5+E*(4+1),5+O*(4+1),6+E*(4+1),6+O*(4+1),7+E*(4+1),7+O*(4+1)
前面所有不匹配结果可以写成f(O*(4+1))=0,f(E*(4+1))=1
继续分析下去还是比较复杂的,我们可以让计算产生充分大范围内一些数据,然后查看数据中规律。
可以猜测所有不匹配的数据有
f(O*(9+4+1))=0,f(E*(9+4+1))!=0
f(A*5+O*(4+1))=0,f(E*5+E*(4+1))!=0
f(12+E*(4+1))=0,f(E*(12+9)+O*(4+1))=0,f(E*(12+9)+E*(4+1))!=0
f(E*(20+4+1))!=0,f(O*(20+4+1))=0
f(E*(12+9)+O*(20+4+1))=0,f(E*(12+9)+E*(20+4+1))!=0
f(17+O*(12+9)+O*(20+4+1))=0,f(17+O*(12+9)+O*(20+4+1)!=0
f(2*17+O*(20+4+1))=0,f(2*17+E*(20+4+1))!=0
f(2*17+2*9+E*(20+4+1))!=0,f(2*17+2*9+O*(20+4+1))=0
(上面所有最大数小于等于12的状态基本上可以确定没有错,但是最大数为17和20的,可能需要更多的数据来验证)
而对于所有不在上面的状态,我们可以简单的通过g函数(这个函数通过s数组值的异或来计算)来确定是先手胜还是先手负。 |
|