主题:  高手,求一数字游戏算法

东方之猪

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2001/5/28 16:30:49
#12005/7/1 17:33:21
如图:甲乙轮流往方格中填写1、3、4、5、6、7、8、9、10(没有2)中的一个,数不能重复填写,
甲=a+b+c+g+h+i(不计中间行的六个数字和),
乙=a+d+g+c+f+i(不计中间列的六个数字),
甲方由玩家控制,乙方由电脑控制,
乙方的程序应该怎么写,怎么计算乙方应该填的位置呢



东方之猪

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2001/5/28 16:30:49
#22005/7/4 9:31:43
分析:要想使甲的得分超过乙的得分,必须且只需要b+h>d+f,甲有两种策略,一是增强自己的实力--使b、h尽可能的大;二是削弱自己的实力--使d、f尽可能小;
我们用(甲2)和(a5)分别表示“甲的第二次填数”和“在a处填数字5”,
一、甲首先使b、h处填的数尽可能大。如(甲1,b10)表示甲的第一次在b位置填数字10这样(乙1)为了不输,必须须h处填数(否则,若乙1不在h处填数,当(甲2)在h处填余下的最大数后,总有b+h>d+f) 
二、(甲2)有能在d、f处填数,否则(甲2,dx),x为任一数字,则(乙2)在f处填余下来的最大数后,却有d+f>b+h
[解]
一、甲首先削弱乙,使d、f处填的数尽可能小(才有可能)
1、若(乙1)不在f处填数时,(甲2)在f处填余下的最小数,则最后必有b+h>=3+5=8>5=1+4>=d+f,甲胜
2、若(乙1,f10)则(甲2,b9),最后必有b+h>=9+3=12>11=1+10=d+f,甲胜,
因此只要(甲1,d1),且以后甲每次就对正确,则甲必胜.
以上是我的分析,现在的问题是玩家(甲)不按上述分析填数时,乙如此才能判断出那个数是最有利的数,也就是乙的算法