粵語歌文化歷史研究者,喜歡鑽研文字與音樂的創作,也喜愛數學與棋藝等等。
分类: IT职场
2013-04-06 13:59:02
「飛越曹營」,也是來自「泰式十一勢」的,是其中的第十勢(參見拙文〈智力遊戲華容道之「泰式十一勢」http://blog.chinaunix.net/uid-20375883-id-1959534.html〉)。這一勢的解法十分簡單,只用廿一步就可以完成任務,而且有趣的是,移好之後,就真像是只有「張飛」移動過,其他九枚棋子卻像一動也不曾動過。以如此步數得到這種「鏡影」效果,是頗罕見的。
近日好奇,試以Leo Jay大兄賜贈的的程式搜索一下這個局面的嚴格鏡影解法會需要多少步,得出的結果是86步。這亦是一奇。因為,同一局面的普通鏡影最優解步數,與嚴格鏡影最優解步數,一般相差不會超過20步,而上面那個「飛越曹營」,二者相差竟達65步(相信日後如有機會,可以研究一下這二者的最大差額會是多少步,但肯定需要以程式作窮竭式搜索,不是我可以做得來的)。由此而生出另一好奇,這個「飛越曹營」玩法的目標局面,不計「曹操」、「張飛」兩枚棋子,其餘八枚棋子共有96種排列方式,它們各自的最優解步數,在怎樣的排列之下才達至最多。為此特地求教於Leo Jay大兄。Leo Jay大兄對筆者的研究鼎力支持,他索性把96種排列的最優解法都全部求出來,好讓筆者喜歡怎樣研究都成,對此非常感激!
有了Leo Jay大兄提供的全面數據,我做了以下的統計
最優解步數 局數
二十一 四
二十二 十二
二十三 六
二十四 四 以上共廿四局
五十四 六
五十五 十五
五十六 三 以上共廿四局
八十五 七
八十六 十七 以上共廿四局
九十 十二
九十一 十二 以上共廿四局
由此見到,九十六種目標局面,解法可分成四大組,每組有廿四局(廿四是四枚小兵的排列總數)。可見最優解步數有大差異主要是跟大將的調換位置有關的。廿一至廿四步的解法是「四枚大將俱不動」,五十四至五十六步的解法是「黃忠馬超兩枚豎將調位」,八十五至八十六步的解法是「黃忠馬超、關羽趙雲兩兩各自調位」,九十至九十一步的解法是「關羽趙雲兩枚橫將調位」。
意外的是,僅是「關羽趙雲兩枚橫將調位」,所需的最優解步數,竟是比「黃忠馬超、關羽趙雲兩兩各自調位」的最優解步數還要多。頗有違反直覺之感。但相信這也是華容道遊戲不可思議以及滿帶吸引力之處。
以下詳細介紹上文提過的四種玩法的解法。
「張飛」飛越,其他棋子不動
曹右 飛右 飛下 左二兵左 飛上 曹左 飛下 二兵右(10步) 飛右 二兵右 飛上 曹左 飛下 二兵左 飛上 飛右 曹右(21步,完成)
「張飛」飛越+「黃忠」「馬超」易位
曹右 飛右 飛下一格 兵左 兵上 飛上 關上 關左 曹下 兵下折右(10步) 二飛右 兵下 兵左折下 兵左 二飛上 兵左 曹上 關右(20步) 關下 兵下折左 曹左 飛下 二飛右 兵右折上 兵上折右 兵上 曹左(30步) 飛左 飛下 飛右 飛上 曹右 二兵下 二兵左 二飛左(41步) 飛上 曹右 飛下 兵右折上 兵上折右 兵上 飛左 曹左 飛下(50步) 飛右 兵右折上 兵右 兵下折右 飛上(55步,完成)
「張飛」飛越+「黃忠」「馬超」易位+「關羽」「趙雲」易位
曹右 二兵下 飛右 飛上 兵左折下 兵上折左(二兵左) 曹左 飛下 二兵右(11步) 二飛右 二兵上 曹左 飛下 二兵左(兵左折下 兵上折左) 飛上(20步) 飛右 二兵下 飛右 兵右折上 曹上 兵左 兵下折左 飛下 飛左(30步) 飛上 飛右 飛下 兵右折下 兵右 曹上 兵上折左 飛左 二兵下(40步) 飛左 飛上 兵右折上 關上 關右 飛下 兵右 兵上 飛左 二關左(51步) 兵下 飛下 飛右 曹右 兵上 兵左折上 兵左 曹下 兵右(60步) 兵上折右 兵上 飛上 二關左 兵左折上 關右 關下 兵左 曹下(70步) 兵下折左 飛左 飛上 曹右 兵右 飛下 兵左 兵上 曹左 飛下(80步) 飛右 上兵右 兵上 兵右 兵下折右(下兵右 兵下 兵右 兵上折右) 飛上(86步,完成)
按:要是玩的目標是「嚴格鏡影」,那八步兵請按括號內的走法。
「張飛」飛越+「關羽」「趙雲」易位
曹右 二兵下 飛右 飛上 二兵左 曹左 飛下 二兵右(11步) 二飛右 二兵上 曹左 飛下 飛右 兵右折上 曹上(20步) 關上 關左 二飛下 兵下折左 兵下 飛右 兵右折下 兵右 曹上(30步) 兵左 兵下折左 兵下 飛左 兵上 兵右折上 二飛上 關右 關下(40步) 兵下折左 二飛左 二兵下 飛右 飛上 兵左折上 關上 關右(50步) 飛下 兵右 兵上 飛左 二關左 兵下 飛下 飛右 曹右(60步) 兵上 兵左折上 兵左 曹下 兵右 兵上折右 兵上 飛上 二關左(70步) 兵左折上 關右 關下 兵左 曹下 兵下折左 飛左 飛上 曹右 兵右(80步) 飛下 兵左 兵上 曹左 飛下 飛右 兵右折上 兵下折右 二兵右 飛上(91步,完成)
這兒還想多介紹一種玩法的解法,其目標局面須如下:
馬兵士黃
馬卒勇黃
曹曹張
曹曹張
關關趙趙
要走出這個局面,最優解是54步,而且走法跟上文介紹的55步走法很不同,真是不可一本通書看到老,也就是做事不可一成不變。
解法:
飛下 兵右折下 兵右 兵上折右 飛右 飛上 曹左 飛左 兵下 兵右折下(10步) 兵下折右 飛上 曹右 飛下 二飛左 兵左折上 兵上折左 兵上 曹右(20步) 飛下 飛右 飛上 飛左 曹左 兵下 兵右折下 兵下折右 二飛右(30步) 飛上 曹左 兵左折上 關上 關右 曹下 兵左 二飛下 兵左(40步) 兵上折左 兵上 二飛右 兵右折上 曹上 關左 關下 左飛下 兵下(50步) 兵左 飛上 飛右 曹右(54步,完成)