黑白子解一:「標準」解法(答案為 x)
標準答案為 x。邏輯是:加上 x 後,每個小正方框裡的黑白點如果顏色互換,都可以找到另一個對應的小正方框。比方說,b2 由左上角順時針看為「空空白黑」,顏色互換後 變成「空空黑白」,與 d1 配對。
兩兩配對:(a1,a3),(a2,d3),(a4,c4),(b2,d1),(b3,c2),(b4,c1),(c3,d2)。

最後剩下 b1 「白空白黑」,互換後為「黑空黑白」,即為 x。
但這只是一種可能的邏輯。
解五:多項式解法之我實在太閒了
這個方法是利用高維度的多項式來解。一樣,要什麼答案都可以。不過為了篇幅,我們不考慮唯一點在中央的 y (要考慮的話,把所有其他的小方格正中央視為空白,像六面骰子點數排列一樣)。

我們就選 z 來當答案,看規則要怎麼變。
編碼
要運用多項式,首先要把各個小方格轉成數值。為了它的唯一性,我們把所有的可能性編碼。拿 b1 來說,從左上角開始,順時鐘方向來看,這格可以表示成「白空白黑」。我們把它用數字替代,空=0,白=1,黑=2,得 1012。這個數字是三進位數,轉成十進位得 32。
| 格序 | 小方格 | 內容 | 三進位 | 十進位 |
|---|
| 1 | a1 | 黑白黑黑 | 2122 | 71 |
| 2 | a2 | 空空白白 | 0011 | 4 |
| 3 | a3 | 白黑白白 | 1211 | 49 |
| 4 | a4 | 白黑空空 | 1200 | 45 |
| 5 | b1 | 白空白黑 | 1012 | 32 |
| 6 | b2 | 空空白黑 | 0012 | 5 |
| 7 | b3 | 黑白黑白 | 2121 | 70 |
| 8 | b4 | 白白黑黑 | 1122 | 44 |
| 9 | c1 | 黑黑白白 | 2211 | 76 |
| 10 | c2 | 白黑白黑 | 1212 | 50 |
| 11 | c3 | 白黑黑白 | 1221 | 52 |
| 12 | c4 | 黑白空空 | 2100 | 63 |
| 13 | d1 | 空空黑白 | 0021 | 7 |
| 14 | d2 | 黑白白黑 | 2112 | 68 |
| 15 | d3 | 空空黑黑 | 0022 | 8 |
| 16 | d4 | ???? | ???? | ? |
| w | 黑黑空空 | 2200 | 72 |
| x | 黑空黑白 | 2021 | 61 |
| z | 空白黑白 | 0121 | 16 |
其實編碼什麼方法都好,只要代表數字與小方格是一對一對應就好。把所有可能性列出來,然後隨意指定一個不重覆的數字也可以。
這裡只是借用三進位制的方便性。
另外,編了碼後,其實就可以用任何一種機器學習(machine learning; ML)的方法來解。但ML中有許多方法雖然能得解,但建立出來的模型卻不直觀,不易說明原理。所以這裡不用ML中依靠機率的模型(比方說類神經網路)。
瘋狂的多項式
好,解法很簡單,就代入這個多項式:
−32691859200096419n15+9686476800367963n14−3736212480083433193n13+95800320076018199n12−20528640003905893151n11+870912002834174039n10−1828915200748402863991n9+203212800780710080883n8−130636800035360802693773n7+435456006209534662753n6−10264320056937672552137n5+119750400186397079118703n4−15135120004585643519077501n3+75675600289798498820219n2−45045125147426197n1+857840
其中,n 代表位置號,如圖:

「你在開玩笑嗎?」
真的,上面的多項式可以精確地算出每一格的內容。
舉個例,拿第 10 格來說,也就是原來的 c2 (白黑白黑,三進位 1212),最後轉換出來的十進位代表值應該是 50 (見編碼表格)。n=10 代入上面那個多項式,算出來的數值正是 50。
−32691859200096419∗1015+9686476800367963∗1014−3736212480083433193∗1013+95800320076018199∗1012−20528640003905893151∗1011+870912002834174039∗1010−1828915200748402863991∗109+203212800780710080883∗108−130636800035360802693773∗107+435456006209534662753∗106−10264320056937672552137∗105+119750400186397079118703∗104−15135120004585643519077501∗103+75675600289798498820219∗102−45045125147426197∗101+857840
註:不想手動驗算,可以把下面的算式貼入網上高精度的計算機算。
-96419*10^15/326918592000+367963*10^14/9686476800-83433193*10^13/37362124800+76018199*10^12/958003200-3905893151*10^11/2052864000+2834174039*10^10/87091200-748402863991*10^9/1828915200+780710080883*10^8/203212800-35360802693773*10^7/1306368000+6209534662753*10^6/43545600-56937672552137*10^5/102643200+186397079118703*10^4/119750400-4585643519077501*10^3/1513512000+289798498820219*10^2/75675600-125147426197*10^1/45045+857840
再換個例子,第2格(a2),n=2代入:
-96419*2^15/326918592000+367963*2^14/9686476800-83433193*2^13/37362124800+76018199*2^12/958003200-3905893151*2^11/2052864000+2834174039*2^10/87091200-748402863991*2^9/1828915200+780710080883*2^8/203212800-35360802693773*2^7/1306368000+6209534662753*2^6/43545600-56937672552137*2^5/102643200+186397079118703*2^4/119750400-4585643519077501*2^3/1513512000+289798498820219*2^2/75675600-125147426197*2^1/45045+857840
算出來總和是十進位的 4,換成三進位得 11,前面補上 0 得 0011,為「空空白白」,的確就是 a2 的內容。
終於輪到 z 了
最後來算第 16 格,n=16,代入後結果為十進位的 16,換成三進位 121,補 0 成 0121,「空白黑白」。正是 z 的內容。
-96419*16^15/326918592000+367963*16^14/9686476800-83433193*16^13/37362124800+76018199*16^12/958003200-3905893151*16^11/2052864000+2834174039*16^10/87091200-748402863991*16^9/1828915200+780710080883*16^8/203212800-35360802693773*16^7/1306368000+6209534662753*16^6/43545600-56937672552137*16^5/102643200+186397079118703*16^4/119750400-4585643519077501*16^3/1513512000+289798498820219*16^2/75675600-125147426197*16^1/45045+857840
多項式是怎麼來的?
雖然多項式的維度與係數看來很嚇人,但其實沒什麼了不起。整個解法就是解下面的聯立方程而已:
f(n)=A∗n15+B∗n14+C∗n13+D∗n12+E∗n11+F∗n10+G∗n9+H∗n8+I∗n7+J∗n6+K∗n5+L∗n4+M∗n3+N∗n2+O∗n1+P∗n0
n 以 1 至 16 分別代入,依原表格的十進位數一欄,得下列十六式:
f(1)=71;f(2)=4;f(3)=49;….;f(15)=8;f(16)=16 (z格的十進位)
十六式聯立,可以算出A,B,C,…,P 等十六個係數。
矩陣法
把上面聯立方程改寫為下列矩陣式,把 X 代入想要解的值(解答是z,就代入表格裡算出的X=16),就可以求得 A,B,C,…,P 等係數的值了。
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡115215315415515615715815915101511151215131514151515161511421431441451461471481491410141114121413141414151416141132133134135136137138139131013111312131313141315131613112212312412512612712812912101211121212131214121512161211121131141151161171181191110111111121113111411151116111102103104105106107108109101010111012101310141015101610192939495969798999109119129139149159169182838485868788898108118128138148158168172737475767778797107117127137147157167162636465666768696106116126136146156166152535455565758595105115125135145155165142434445464748494104114124134144154164132333435363738393103113123133143153163122232425262728292102112122132142152162112131415161718191101111121131141151161102030405060708090100110120130140150160⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡ABCDEFGHIJKLMNOP⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡71449453257044765052637688X⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
用矩陣解聯立,求出來的 A,B,C,…,P 等值,就是之前已先列出的多項式係數。A 是第一項係數 326918592000−96419, P 是最後一項係數 857840 等等。
−32691859200096419n15+9686476800367963n14−3736212480083433193n13+95800320076018199n12−20528640003905893151n11+870912002834174039n10−1828915200748402863991n9+203212800780710080883n8−130636800035360802693773n7+435456006209534662753n6−10264320056937672552137n5+119750400186397079118703n4−15135120004585643519077501n3+75675600289798498820219n2−45045125147426197n1+857840
總之,最後一格想要什麼答案,就把它編碼成十進位表示法,代入矩陣式中的X,算出係數,然後就可以用得出的多項式來算十六格中任一格的內容。
留言...
所有留言都必須經過人工過濾,才能顯示於網頁上,以防止垃圾訊息與詐騙!