找回密码
 欢迎注册
楼主: 毒酒滴冻鸭

[原创] 一个中国象棋局面设计难题

[复制链接]
 楼主| 发表于 2019-12-7 22:49:12 | 显示全部楼层
最后就是这个终极的“独一无二唯一解”(104,0):

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-12-7 22:57:58 | 显示全部楼层
就是这样,不知各位大神高手们有没有可能找出更优化的结果(人脑设计也好,电脑编程也好)?相信目前这些结果可能跟最终的极限值相差很远,虽然应该不可能达到终极的(110,0),但是估计r-b大于或等于105应该不止(108,3)一个例子的。从2011年遗留到现在的问题,希望有大大能帮忙破解这个心结!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-8 17:13:02 | 显示全部楼层
建议你先去看看单墫有本《棋盘的数学》。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-12-8 23:31:12 | 显示全部楼层
markfang2050 发表于 2019-12-8 17:13
建议你先去看看单墫有本《棋盘的数学》。

谢谢推荐!已经找到了那本著作,粗略看了一下,里面有不少很好的内容,都是跟离散数学和排列组合甚至跟图论有关的。但是可惜没有关于本帖这个问题的相关资料。

本帖这个问题估计比较冷门,一般数学理论是不能帮忙解决的,只能通过经验从已知的结果逐步修改、优化,也需要很丰富的想象力和计算能力。当然最理想是利用编程彻底暴力搜索,但是难度也非常高。

首先得设定一个9x10的棋盘空间,然后把红黑各16子分布在上面,车马炮可以在全部90个位置出现,兵可以在过河的45个位置和未过河的10个位置出现,相/象各有7个可能位置,仕/士只有5个,帅/将有9个。这里的所有排列组合总数已经非常大了(当然编程时可以根据一些条件斩断很多分支)。另外计算走法总数也需要不少考虑因数,例如绊马腿、塞象眼、炮架,甚至防止将帅被杀或面对面而被钉死的棋子等等。

可恨本人没有编出这种暴搜程序的功力/条件,只是抱着万一的盼望这里会有哪位大神碰巧有能力又有兴趣会出手解决一下,又或其他对象棋有兴趣的高手们会尝试一下用人脑把这一系列的结果继续优化。目前只能继续盼望了,希望这帖子不要沉得太快。。。

点评

好题,高冷,游戏,不宜此版块,建议去"开心茶馆"讨论  发表于 2019-12-12 08:05
找不到悬赏的方法,可能帖子发太久不能编辑了。。。以后有空再研究。。。  发表于 2019-12-10 21:17
我的级别这么低也能悬赏吗?貌似也有300金币左右,就不知大神们会不会为这数目出手。。。也罢待会试试好了!谢谢提醒!  发表于 2019-12-10 20:57
悬赏就行了。  发表于 2019-12-9 17:06
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-12 09:12:10 | 显示全部楼层
这个题目如果计算机搜索,应该优先考虑白方车、炮的位置,其次是白马的位置。
由于白方总共可以损失的移动步数很少,确定了白方车、炮位置以后,余下的棋子可以使用的范围就会比较小了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-12-13 01:47:40 | 显示全部楼层
本帖最后由 毒酒滴冻鸭 于 2019-12-13 01:56 编辑
mathe 发表于 2019-12-12 09:12
这个题目如果计算机搜索,应该优先考虑白方车、炮的位置,其次是白马的位置。
由于白方总共可以损失的移动 ...


是的,感谢mathe大神的高见!在限制r数值必须在104至110这范围内的时候,红方车马炮的可能组合的确能大幅减少,但主要难点是如何在b=0至6这范围内安置16颗黑子,虽然可以根据红子进一步缩窄范围,但是黑子本身必须32子全部放好才能算出它们的走法数量能如何达到最大程度的减少,所以不能像红子那样提早斩断太多分支,而16颗黑子就代表了16层的搜索,复杂度一层一层乘起来就变成天文数字了。

当初另一个类似的问题也是因为这个瓶口而非常难想,就是“如何用最少的红子让黑方16子完全困毙”,我们当时在贴吧也是研究了很久。当时的结果是一车一兵、一车一马、一车一炮、一马一炮、双炮、双马一仕、三兵等(当然也要有红帅的存在)。这是当时那个帖子的地址:【象棋理论研究】少子锁死十六子全之局面大总结。如果能用程序解决本帖子的问题那么该问题也几乎可以顺带一并解决了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-8-5 16:01:12 | 显示全部楼层
之前做图的在线工具更新了,可以输入象棋棋子的中文字,所以又弄了对应原先旧图的十张新图。

新图上黑方棋子可走的步数用右上方小白圆表示,白(红)方棋子被限制的步数用右下方的小黑圆表示。

最后总结步数时白方以119步为上限(双俥双炮各17、双傌各8、帥双仕双相各4、五兵各3,4(17)+2(8)+5(4)+5(3)=119),再减去所有被限制的步数,黑方则统计全部可走步数。

白110黑6:


白109黑5:


白108黑4:


白107黑3:


白108黑3:


白106黑2:


白105黑1:


白102黑0:


白103黑0:


白104黑0:
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-23 05:59 , Processed in 0.027557 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表