- 注册时间
- 2014-11-20
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 580
- 在线时间
- 小时
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?欢迎注册
×
本帖最后由 毒酒滴冻鸭 于 2019-12-7 21:37 编辑
这个问题是八、九年前(2011年4月)本人在象棋吧发起研究的,当时热闹了一阵子,后来大家各有各忙就慢慢淡下来了。近年百度让很多旧帖子都不能访问了,但是这个帖子侥幸被保留了下来,所以希望把这个问题搬到这边,求取这里的高手大神们的宝贵意见。(只不知这边对中国象棋有兴趣的高手大神们多不多?)
原帖地址在这里:【象棋数学谜题系列】象棋局面设计新挑战
(我也不知这严格来说应否算是数学题,当时大家都是用人脑推敲的,每次把一个新局面推敲出来都很有满足感。当然如果能用电脑编程暴搜就能产生板上钉钉的结果了,但是估计这对编程技术要求很高,而且编程者必须对象棋规则有一定的认识,虽然跟棋力无关。2011年那时的计算机速度估计也不能达到能成功暴搜的效果,只不知现在是否有这条件?)
先把题目在这里重新定义一下:
在一个棋盘上摆满红黑双方的全部32颗棋子(双方各一帅/将、两车、两马、两炮、两仕/士、两相/象、五兵/卒),设计出一个轮到红方走、合乎规则的局面(所以这时红方下一步不能直接吃掉黑将,否则黑方上一步已经犯规)。
然后把每颗棋子的所有可能走法的总数计算出来(注意这里走法包括一般移动和吃子),设红方的16颗棋子走法总数为r,黑方的16颗棋子走法总数为b(即使不是轮到黑方走),用(r,b)代表该局面的价值。
我们当时的研究方向是:把r尽量最大化,同时把b尽量最小化。
一开始本人很天真的以为r最大只可能是109,当然这很快被象棋吧的一位大神gyundq(孤云独去)彻底打脸了,因为实际上r的最大值为110,而这也是一方16颗棋子都在时的理论上限(如果红方可以少一颗仕的话能达到111,但这跟本题目无关)。这位gyundq大神后来也在这问题上作了很多突破上的贡献,基本上之后的最优结果大部分都是我们两人合作搞出来的。当然这是后话,如果有兴趣的不妨细阅一下原帖子,只有七页的内容,可以见证当时我们一步步把各个结果优化的过程。我也会把该帖子所有的最优结果直接在下面列举出来,方便大家查看。
在此总结一下当时所有的最优结果:
r最大值为110,在此条件下b的最小值为6。也就是我们可以产生一个(110,6)的局面。
之后基本上r每次减1,b的最小值也会随着减1,所以可以随着产生(109,5)、(108,4)、(107,3)、(106,2)、(105,1)、(104,0)的这些局面。
而104也是在b=0(即黑方16子都完全不能移动)下r的最大值,当时我找到合乎这价值的局面只有独一无二唯一的一个,所以是一个非常特别的结果,在原帖的最后第七页可以找到,而我待会也会列举在下面。
基本上r和b的最大差距一般只能是104,唯一的例外是我当时也找到了一个(108,3)的结果,这是r-b>104的唯一例子,在原帖的第六页可以找到。
所以基本上当时最关键的结果就是下面这几个价值:
(110,6)
(109,5)
(108,4)
(108,3)
(107,3)
(106,2)
(105,1)
(104,0)
为方便整理,下面我会另开楼层把这些结果逐一列举。现在先放一个棋盘例图:
象棋棋盘例图1
(很抱歉我目前能用的界面只可以输入英文字母,所以不能用大家常用的中文字把棋子表示出来。 )
这里红方棋子用白色圆形代表,黑方棋子用灰色圆形代表,棋子的字母则根据国际标准如下:
帅/将=General=G
车=Rook=R
马=Horse=H
炮=Cannon=C
仕/士=Advisor=A
相/象=Elephant=E
兵/卒=Soldier=S
象棋棋盘例图2
上图是把每颗棋子的走法总数标注出来的版本。相加之后可以看出r=b=44,所以这是一个价值(44,44)的局面,也就是中国象棋的标准开局局面。 |
|