摘要: 数码的可达问题——8数码的推广 一个经典的问题:8数码 有一个3*3的九宫格,每格填有一个数0到8的数,互不相同。 填的数为0的格子可以和相邻的格子交换数。 给定九宫格的两种状态a,b,问能否通过一组交换使得a状态变成b状态。这个问题的标准解法是:把两个状态中的数(除0外)线性地排列出来并且分别求其逆序对数,若两个逆序对数的奇偶性相同,那么a,b相互可达。这个做法相当优美,但是它只是利用了这类问题的某个性质,究竟是什么性质呢?首先考虑一个2*2的棋盘容易发现,交换操作过后,只可能是当前状态的某个轮换。以此为基础,可以用数学归纳法得到一个结论:在任一 N*M的格子中,取任意三个非0的数,可以有. 阅读全文
posted @ 2012-02-28 11:56 zhouyichi 阅读(502) 评论(0) 推荐(0) 编辑