我們先來介紹一點組合數學的知識.有一堆東西,需要把它們排列出來,我們可以給每一個東西編一個號,例如按某種規定依次編為1,2,…,n.我們稱這個從小到大的序列(1,2,…,n)為順序列,但若出現一個大的數排在小的數的前面,例如(1,3,2,4,…,n),這是一個在順序上發生雜亂的序列,我們不妨稱之為非順序列.人們規定:若在一個序列中,有一個數排在另一個比它還小的數之前,我們稱之為一個倒置.例如非順序列(1,3,2,4,5)有一個倒置,又如(3,1,2,4,5)有兩個倒置,因為3不僅在2之前,而且還排在1之前,再如(3,2,1,4,5)有三個倒置,因為3排在1,2的前面,這有兩個倒置,2排在1的前面,又有一個倒置.我們稱順序列的倒置數為0 ,這是因為順序列沒有發生倒置.根據倒置數的不同,我們可以把所有的序列分成兩類,一類是倒置數為偶數的序列,我們稱之為偶置序列(順序列也應歸為偶置序列);另一類是倒置數為奇數的序列,我們稱之為奇置序列.
設圖18是一個十五子游戲的初始位置,我們先把這15個數排成一個序列:5,1,4,3,10,8,2,13,6,9,14,
12,7,15,11. 5排在最前面,因而有1,2,3,4這四個比它小的數排在它后面,所以僅僅對5來講,有4個倒置,我們把4寫在橫線下和5對應;1排在第2,雖然5排在它前面,但這個倒置在計算5的倒置數時已經算過了,所以不再計算,而1的后面再也沒有比1小的數了,因而1的倒置數是0,把0記在1的下面;同理,4的后面比 4小的數有3和2兩個,因而在4的下面記下2;依此類推,得圖19.由于4+0+2+1+5+3+0+5+0+1+ 3+2+0+1+0= 27是一個奇數,因而這是一個奇置序列(請注意,這時我們是把空格拋開來計算的).事實上,要判斷其是奇置序列還是偶置序列,用不著把這些倒置數加起來.因為偶數加偶數還是偶數,奇數加偶數還是奇數,就是說,一個整數加上一個偶數并不改變原來這個整數的奇偶性,因此我們只需數一下倒置數中有多少個奇數,若是偶數個奇數,則這個序列是一個偶置序列;若有奇數個奇數,則這個序列一定是個奇置序列,圖19的下面一行數中共有1,5,3,5,1,3,1七個奇數,故馬上斷定圖上的序列是一個奇置序列.
下面我們來研究一下,一個序列中相鄰的兩個數調換一下位置,倒置數會發生什么變化.例如一個序列中某一對相鄰的兩數為xy,當兩數調換位置后,變為yx.若x大于y,則xy的順序是不正常的,即有一個倒置,現在變為yx,即小的在前,大的在后,因而原來的一個倒置消失了;若x小于y ,則xy這兩個數之間沒有倒置,變為yx后,小的在后,大的在前,因而產生了一個倒置.因此,我們可以斷言,兩個相鄰的數若調換位置后,序列倒置數的奇偶性一定發生改變.若有三個相鄰的數xyz,把x調到z的后面,變為yzx,這時候我們可以把這樣的調換,先看為是x與y變換位置,變為yxz,再把x與z變換位置,變為yzx,即經過了兩次相鄰的調換,因而原序列倒置數的奇偶性要發生兩次變化,即奇—偶—奇,或者是偶—奇—偶,這樣,一個數在序列里向前跳過兩個數或向后跳過兩個數后,序列的奇偶性不變.若是有四個相鄰的數排成xyzw,當x調到w后面,變為yzwx時,顯然還可以把這個變換分成三個相鄰的變換,即x先與y交換,再與z交換,最后與w交換,因而原序列倒置數的奇偶性也經過三次變換,即奇—偶—奇—偶或偶—奇—偶—奇,故序列的奇偶性要變.
在十五子游戲中,我們的變化不過是把空格向左右或向上下移動,當空格向左右移動時,原位置的序列沒有發生變化,例如在某一行中,原來的位置是[xyz],當空格向右移動時變為[xyz],空格向左移動時變為[xyz],這兩種情況的排列都是xyz,因而我們斷言,當空格向左右移動時,原序列的例置數不變,所以倒置數的奇偶性沒有發生變化.當空格向上移動時,例如由圖20變為圖21,因為圖20展開的序列為(**xyzw*),而圖21展開的序列為(**yzwx*),即x向后跳了三個位置,因而按前面的分析,序列的奇偶性要改變.同理,當空格往下移動一格時,即由圖21變為圖20時,序列的奇偶性也要改變.而當空格向上移動一格后,又向右或者向左移動時,最后又向下移動到空格原來所在的行時,則序列倒置數的奇偶性變化了兩次,因而知道倒置數的奇偶性不變.若空格向上或向下移動兩格,則序列倒置數的奇偶性也變化了兩次,結果倒置數的奇偶性仍然不改變,但若向上或向下移動三次則奇偶性就要改變了.在十五子游戲中,最后結果空格是在第四行,因而若空格原位置在第四行或者第二行,則到最后位置(即圖16或圖17)時,序列的奇偶性不會改變;若空格原來的位置是在第一行或第三行時,則最后位置的倒置數的奇偶性要發生變化.我們在前面已經講過,不論十五子游戲的最初位置如何,最終總可以變為圖16的正常排列(偶置序列)或圖17的奇異排列(奇置序列).因此,當原位置的序列是偶置序列,而空格在第一行或第三行時,它只能變為奇異排列;若空格在第二行或第四行,則一定可以變為正常排列.當原位置的序列是奇置序列,而空格在第一行或第三行時,則最終可以變為正常排列;當空格在第二行或第四行時,它就只能為奇異排列了.由于正常排列與奇異排列的空格都在第四行,因而正常排列(偶置序列)再經過任何移動也不可能變為奇異排列(奇置序列).到此,我們就完全掌握十五子游戲的奧秘了.因為我們不但能把它排成最終狀況,而且能預先就知道它能不能排成正常排列,這只要簡單計算一下序列倒置數的奇偶性,且看一下空格在第幾行就行了.就這樣,我們僅僅使用了一點點數學概念就把神秘的十五子游戲變得十分簡單明了.
順便指出,任何n2個縱橫數相同的小方格和(n2 - 1)個小紙板都可以玩“n2 - 1子游戲”,例如縱橫各五的二十五個小方格和二十四個小紙板的“二十四子游戲”與十五子游戲一樣,可以總結出規律,并且規律更簡單一些,這里我們就不再多介紹了.(續完)