Saturday, November 29, 2008

华容道之最(四)布局知多少

华容道之最(三)中得到的开局数目并不是全部布局的数目,因为这些开局都是由可能的终局推演出来的,所以那些“无解”的开局就不包含在里面了。接下来我想知道的就是去除所有的限制以后,华容道的布局总数到底有多少。

求解的思路和前面一样,不同的是要先确定曹操的位置,这一共有12种可能;然后空格的位置不能限定在曹操边上了,但两个空格和四个小兵仍然必须是3黑3白,这中间的可能性一共有C(8,3)C(8,3)种;再从这6个1x1的格子中选出两个空格,这是C(6,2)种;最后是把横子和竖子放进去。

因为不需要移动棋子,程序一下子就简单了许多。最后得到的总数是363494。

当然这里面有一些布局彼此之间是左右对称的,也就是说把布局A左右倒过来就得到了布局B。这样对称的布局对于华容道经典玩法“曹操逃出”的胜利条件来说是等价的,因为出口是在最底一横中间也是对称的,所以如果知道A的解法,每一步都左右倒过来就得到了B的解法。事实上之前的程序在求解的时候都考虑了对称的情况,如果有一个布局的左右对称布局已经求解过了就直接跳过去,可以节省很多时间。刨去左右对称的情况以后,总数是181962。

如果进一步把上下对称和旋转对称也去掉,最后得到的布局数目是90981。这个数字对后面求镜影、倒影和反影的玩法来说,是更根本的。

No comments: