陳凱
說(shuō)到學(xué)習(xí)二進(jìn)制,難免要和“基數(shù)”、“權(quán)重”這樣的抽象概念,或是和一堆枯燥的數(shù)字符號(hào)打交道,本文介紹兩款小游戲,希望學(xué)習(xí)者能夠在直觀、形象的互動(dòng)中逐漸揭開(kāi)二進(jìn)制編碼的奧秘。
二進(jìn)制拼圖
剪若干張矩形的紙片,紙片的寬度和長(zhǎng)度的比例為1:1.414,暫且把這樣的形狀稱為A形拼板,然后在白紙上由大到小畫(huà)出幾個(gè)空白框(如圖1),不同大小的框的邊長(zhǎng)比例也是1:1.414,最小的空白框的形狀與A形拼板一樣。游戲規(guī)則很簡(jiǎn)單:任意取出一些A形拼板,嘗試將這些拼板填滿幾個(gè)空白框,注意填完后圖形要完整并且拼板不能有多余的。假設(shè)由大到小預(yù)先設(shè)置A、B、C、D共4個(gè)框,經(jīng)過(guò)實(shí)驗(yàn)可發(fā)現(xiàn),如果有10塊拼板,則恰好可以填滿A和C(如圖2);如果是7塊拼板,則可以填滿B、C和D。
如果把所填滿的框標(biāo)為1,把空白的框標(biāo)為0,那么就可以看出,紙片的數(shù)量正好對(duì)應(yīng)由框所表示的二進(jìn)制編碼,10張紙片是1010,而7張紙片是0111。很容易看出,之所以有這樣的效果,其實(shí)與二進(jìn)制的權(quán)重有關(guān)。細(xì)心的讀者可能會(huì)發(fā)現(xiàn),實(shí)際上并不需要很費(fèi)心去量尺寸,直接拿標(biāo)準(zhǔn)的A4或A3紙張反復(fù)對(duì)折,按折痕剪開(kāi)得到的矩形,其比例正是1:1.414。
二進(jìn)制牌
找六種不同顏色的“牌”,如紅色、黃色、藍(lán)色、綠色、白色、黑色,用現(xiàn)成的小塊積木、多米諾骨牌或是用紙板涂上顏色都可以,記住以下規(guī)則:①每看到兩個(gè)紅色,則替換成一個(gè)黃色;②每看到一個(gè)黃色、一個(gè)白色,則替換成一個(gè)黃色、一個(gè)白色、一個(gè)藍(lán)色;③每看到一個(gè)黃色、一個(gè)紅色、一個(gè)白色,則替換成一個(gè)紅色、一個(gè)白色、一個(gè)綠色;④每看到一個(gè)黃色,則替換成一個(gè)紅色;⑤每看到一個(gè)黑色、一個(gè)紅色、一個(gè)白色,則替換成一個(gè)綠色。
牌的初始狀態(tài),都是由一塊黑色開(kāi)始,然后放若干塊紅色,最后由一塊白色結(jié)束。然后按規(guī)則中的順序,從第①條替換規(guī)則依次做到第⑤條,結(jié)束后再重頭開(kāi)始。那么,這些規(guī)則究竟有什么用處呢?不妨用“黑紅紅紅紅紅紅白”的初始狀態(tài)來(lái)試一下。第一步:每看到兩個(gè)紅色,則替換成一個(gè)黃色,則初始的狀態(tài)變?yōu)椤昂邳S黃黃白”;第二步:每看到一個(gè)黃色、一個(gè)白色,則替換成黃、白、藍(lán),于是狀態(tài)再變?yōu)椤昂邳S黃黃白藍(lán)”;第三步:黃、紅、白變成紅、白、綠,由于先前的狀態(tài)中找不到黃、紅、白,于是跳過(guò);第四步:每看到一個(gè)黃色,則變成一個(gè)紅色,于是狀態(tài)變?yōu)椤昂诩t紅紅白藍(lán)”;第五步:黑、紅、白變成綠色,由于先前的狀態(tài)中找不到黑、紅、白,于是跳過(guò);第六步:重新匹配第①條規(guī)則,兩個(gè)紅色變一個(gè)黃色,于是狀態(tài)變?yōu)椤昂邳S紅白藍(lán)”;第七步:黃、白變成黃、白、藍(lán),由于先前的狀態(tài)中找不到黃、白,于是跳過(guò);第八步:黃、紅、白變成紅、白、綠,于是狀態(tài)變?yōu)椤昂诩t白綠藍(lán)”;第九步:每看到一個(gè)黃色,則替換成一個(gè)紅色,由于先前的狀態(tài)中找不到黃色,于是跳過(guò);第十步:黑、紅、白變成綠色,于是狀態(tài)變?yōu)椤熬G綠藍(lán)”,由于再也沒(méi)有可替換的可能了,于是替換就在這里停止。
若將綠看成數(shù)字“1”,而將藍(lán)看成數(shù)字“0”,那么得到的結(jié)果就是110。到這里大家應(yīng)該可以猜出來(lái)了,上述的替換過(guò)程,其實(shí)是將6張紅色的牌,變?yōu)?的二進(jìn)制數(shù)。同樣的,如果初始狀態(tài)是“黑紅紅紅紅紅紅紅紅紅紅白”,那么得到的結(jié)果是“綠藍(lán)綠藍(lán)”,即1010,大家可以自己試一下,即便手邊沒(méi)有任何可以用的材料,這個(gè)游戲在記事本中,用“替換—全部替換”的功能,也是可以實(shí)現(xiàn)的。大家可以思考一下,這套規(guī)則的原理究竟是什么?