作者terrorlone (忧郁症有希望康复的星君)
看板puzzle
标题Re: [问题] 西洋棋谜题(模仿者问题)
时间Sat Apr 18 09:45:01 2009
该公布这题的答案了,因为没有人做这题。
: 那麽接下来是问题了。棋盘的状况如图所示:
:
: 8 黑白
: 7 p p pP = 小兵
: 6 p rR = 城堡
: 5 p nN = 骑士
: 4 bB = 主教
: 3 kP qQ = 皇后
: 2 PPPPPPP kK = 国王
: 1 n r ●
: ● = 模仿者
: abcdefgh
:
: 1. 棋盘上的白王被拿掉了,请问它正确的位置在哪里?
: 2. 黑方的两个主教分别是在哪里被吃掉的?
在这个局面中,乍看黑王面临了不可能的将军,
但是根据模仿者规则,由於模仿者接下来无法模仿 b2xa3 这个动作,
所以黑王在这边不视为被将军。这跟解这题没什麽关系,
只是先回答某些人可能会有的疑惑。
首先注意到底下的黑骑士跟黑城堡,
它们总有一个必须是升变来的,
不然当骑士占据 a1(那必须是在 axb3 之前)之後城堡就绝对无法来到它现在的位置。
可是易看出 a5 和 c6 的兵本来分别就是 b7 和 c7 的兵(也许有交换),
因此那个升变的黑至少是从 e 行走过来的,这至少需要斜移四次,
而 a5 那个兵至少也斜移了一次,於是黑方总共至少斜移五次,
但白方能够用来帮助斜移的子力也就只有五个(两个主教因为出不去、无法帮忙),
因此就可以得到结论:
a5 兵是本来的 b7 兵斜移一次之後变成、c6 兵是原本的 c7 兵,
而黑方的 e7 兵在连吃了四子之後来到 a 行,
通过白方打开的洞口升变成骑士
(注意,如果是升变成城堡,那至少还要再多用一次斜移,不合),
而城堡则是在那更早之前就进入第 1 列了。
由上述结论,就可以知道,白棋除了两个主教都是死在原地之外,
其余的五个子力有四个分别就是死於 a3, b4, c5, d6,
而最後一个可能是死於 a6 或 a5,现在暂时无法确定。
这边我准备探讨棋子被吃掉的位置有个很重要的理由,
那就是,模仿者从一开始到最後所移动的向量,
其实就是整盘棋黑白双方所有移动的向量之和,
而这又等於每个棋子各自从开始到结束之间的向量之和,
换句话说判断每个棋子死掉或者最终的位置,
再跟模仿者比较,这会是非常有用的一个方法。
而为了要让这个方法有用,有一个很重要的关键:棋子的端点位置是可以交换的。
举例来说,现在我有两个棋子,一个整体来看是 a1-b4,
另一个是 b1-c6,因此两者移动的向量分别是 (1,3) 和 (1,5),加起来是 (2,8)。
如果我把它们的终点交换,变成 a1-c6 以及 b1-b4 呢?
那麽向量会是 (2,5) 和 (0,3),加起来一样是 (2,8)。
换句话说,我不需要精确地知道每个棋子各自死在哪里,
我只要知道有哪些地方是曾经有棋子死掉,这样就够了。
以白棋来说,由刚才的结论,除了国王之外的所有棋子贡献的向量应该是:
(1,1)+(0,2)+(0,3)+(-1,4)+(-3,5)+(-7,4 or 5) = (-10,19 or 20)
这边我是擅自假定一种起始位置和终点位置的配对组合,
根据可交换性我们知道这样随便假定的结果算出来也会是正确的。
而黑棋方面,就棋盘上除了城堡以外的其他棋子的最终位置来说,贡献的向量是
(-1,-2)+(0,-1)+(-4,-5)+(-4,-6) = (-9,-14)
於是到目前为止的总和是 (-19,5 or 6)。
根据模仿者的规则,模仿者一开始有可能在棋盘上的任何空白位置,
所以以模仿者在图中的最後位置来说,
它的横移量范围是 [-1,6](我将以方刮号表示区间)、纵移量范围是 [-2,-5],
因此,除了刚才讨论的棋子之外其他的棋子必须提供 [18,25]
的横移量和 [-11,-7] 的纵移量。
现在,稍早我们已经说过底下的城堡不能是升变来的,
所以它是 a8 或 h8 的城堡其中之一,
提供的向量分别是 (3,-7) 和 (-4,-7)。
不管是哪种情况,把这个城堡考虑进去之後,
剩下的其他棋子提供的纵移量都必须在 [-4,0] 之间。
这个时候还有一个棋子的负纵移没有被考虑到:
就是在 b3 被白兵吃掉的棋子。
由於这个棋子不可能是黑兵,
因此这个被吃掉的棋子竟然提供了 -5 的纵移,
於是剩下的其他棋子的总纵移就必须是 [1,5]。
这个时候,如果从题目的局面开始追溯可能的棋步,
由於模仿者被卡在第 1 列,
会发现那将是无止尽的黑城堡与白王的横向移动,
这将无法追溯到初始的布局状态──
除非,早先的某一步是白王吃掉了一个黑棋,
而且那个黑棋只能是骑士,否则一样解决不了问题。
也就是说,白王必定在稍早吃了一个黑骑士,
那是抵达题目的局面之前最後一个「有意义」的棋步。
而且那个黑骑士在被吃掉之前正好做了一个往下跳的动作(使得模仿者来到第 1 列),
然後立刻就被白王横向吃掉。这件事会是发生在哪一列?
显然顶多是第 6 列,但是也至少是第 5 列,
不然白王的正纵移无法补足该黑骑士的负纵移。
於是,白王最终的可能位置已经被缩小到两列之间了。
但是这麽一来,白王跟黑骑士的纵移抵销後是 1 或 3。
如果是 1,那黑棋就再也不能有任何负纵移,
如此一来剩下的四个黑兵都不曾动过,因而 f8 的主教没有动过。
在这个前提之下,我们来计算横移量。
不失一般性我先假设在 b3 被吃掉的棋子是 a8 的城堡,
於是两个黑城堡的横移量和是 -3。国王顶多提供 3,
两个黑骑士顶多提供 7,黑主教因为有一个不能动顶多提供 5,
最後黑皇后顶多提供 4。这加起来顶多是 16,跟范围还差了2,不可能。
换句话说,白王跟那个被它吃掉的黑骑士的纵移量之抵销应该是3,
以及黑骑士是在第 6 列被吃的;上面的计算也意味着,
为了把横移量补足,黑方除了在 b3 被吃掉的棋子之外,
所有的棋子都必须是在 h 行被吃,而且白王最终也必须是在 h 行,
以及模仿者必须是初始在 h 行。
因此第一个问题的答案揭晓了:白王的正确位置在 h6。
接下来,黑棋只剩下 -2 的负纵移可以用,
但是如果 f8 主教是在 h6 以下的格子被吃
(因为颜色的关系它显然并非是在 b3 被吃掉的棋子),
那麽它就已经把这负纵移都用完了,
但这样一来其余的黑兵就不能动,它根本无法出来,矛盾,
因此 f8 主教只能是在 h8 被吃掉。
最後,如果 c8 主教不是那个在 b3 被吃掉的棋子,
那它为了在 h 行被吃,它至少用掉了 -2 的负纵移
(它自己要 -1、而 h7 小兵要让开也要 -1),
可是刚才为了让 f8 主教在 h8 被吃,已经移动了 g7 的小兵、
用掉了 -1 的负纵移,根本没有多余的 -2 负纵移可以给它用,
因此它只能是在 b3 被吃掉的那个棋子。
於是解到这边答案终於出来了:两个黑主教分别是在 b3 和 h8 被吃的。
全部解决完毕。
注意到一直解到最後我都无法确定纵移量到底是怎麽分配的,
因为黑方还有一个 -1 纵移量可以给某个小兵使用,
我们无从确定黑方有没有把它用掉。但是这并不影响解题就是了。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.19.121.146
※ 编辑: terrorlone 来自: 163.19.121.146 (04/18 09:50)