二進(jìn)制在數(shù)學(xué)中的妙用
goal00001111搜集整理
十
八世紀(jì)初,萊布尼茨發(fā)明了二進(jìn)制數(shù),當(dāng)時(shí)的他肯定沒(méi)有預(yù)料到二進(jìn)制在信息時(shí)代會(huì)有著如此廣泛的應(yīng)用。二進(jìn)制數(shù)以其工作可靠,運(yùn)算簡(jiǎn)單,邏輯嚴(yán)密,容易實(shí)現(xiàn)
等特點(diǎn),成為了計(jì)算機(jī)的專用語(yǔ)言。在計(jì)算機(jī)科學(xué)和大量應(yīng)用數(shù)學(xué)領(lǐng)域中,二進(jìn)制記數(shù)法是必不可少的。在趣味數(shù)學(xué)方面,同樣也有廣泛的應(yīng)用。
讓我們先來(lái)看一個(gè)經(jīng)典的數(shù)學(xué)趣題:
一工人工作7天,老板有一段黃金,每天要給工人1/7的黃金作為工資,老板只能切這段黃金2刀,請(qǐng)問(wèn)怎樣切才能每天都給工人1/7的黃金?
這題不簡(jiǎn)單吧?小心別把腦子都想破了。
在給出答案之前,先讓我們看另一個(gè)簡(jiǎn)單的例子:
用天平稱1~63克整數(shù)克重的物品,至少要配備幾只多重的砝碼(砝碼只能放在天平的一端)?
沒(méi)有學(xué)過(guò)二進(jìn)制的人是很難想到答案的,可是如果你知道二進(jìn)制數(shù),那就不難了。我們知道二進(jìn)制中只有0和1兩個(gè)數(shù)字,它的各位數(shù)字的權(quán)值從小到大依次為2^0,2^1,2^2,2^3,。。。。我們用一個(gè)數(shù)的每位數(shù)字乘以其權(quán)值所得到的乘積之和來(lái)表示這個(gè)數(shù)。對(duì)于一個(gè)具有8位的二進(jìn)制數(shù)來(lái)說(shuō),它可以表示的數(shù)據(jù)范圍是0~2^8。
63 = 2^6 – 1 =
2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5
所以,我們只需配備2^0 =1,2^1 = 2,2^2 = 4,2^3 = 8,2^4 = 16,2^5 = 32五種不同克數(shù)的砝碼各一個(gè)。
類似的題目還有如何裝蘋(píng)果:
現(xiàn)有一筆出售蘋(píng)果的生意,已知客人可能需要的蘋(píng)果數(shù)量肯定是1個(gè)到1000個(gè)之間,但不知道具體數(shù)字。客人要求必須全部用他提供的箱子裝整箱(每個(gè)箱子都最多可以裝1000個(gè)蘋(píng)果),箱子一旦裝成就無(wú)法再拆開(kāi)重裝。
你手中有1000個(gè)蘋(píng)果,10個(gè)箱子,客人需要的蘋(píng)果數(shù)量未知,問(wèn)怎么裝才能滿足客人的需要?
解題的原理和上題是一樣的,都是利用二進(jìn)制數(shù)的記數(shù)原理。因?yàn)?/span>1000 < 2^10 = 1024,所以只要使用2^0,2^1,2^2,2^3,2^4,2^5,2^6,2^7,2^8,2^9十個(gè)數(shù),就可以表示1到1023之間的所有數(shù)。
例如:30 = 2^1 + 2^2 + 2^3 + 2^4;75 = 2^0 + 2^1 + 2^3 + 2^6等。
但是現(xiàn)在蘋(píng)果的總數(shù)不是1023個(gè),而是1000個(gè),所以第10個(gè)箱子裝的蘋(píng)果數(shù)不是512個(gè),而是489個(gè)。
1000 = 1 + 2 + 4
+ 8 + 16 + 32 + 64 + 128 + 256 + 489;
所以這10個(gè)箱子中每個(gè)箱子依次裝1,2,4,8,16,32,64,128,256,489個(gè)蘋(píng)果,就可以滿足整箱提供給客人任意數(shù)量蘋(píng)果的要求。
現(xiàn)在明白第一個(gè)題目的解法了吧?對(duì)!就是二進(jìn)制。
因?yàn)?/span>7 < 2^3 = 8,所以只要使用2^0,2^1,2^2三個(gè)數(shù),就可以表示1到7之間的所有數(shù)。那么我們只要把金條分成三份,比例為1:2:4,也就是第一刀切下金條的七分之一(設(shè)為A),第二刀切下金條的七分之二(設(shè)為B),剩下的部分剛好為金條的七分之四(設(shè)為C)。我們只要按照如下的方法發(fā)放工資,就解決問(wèn)題了:
第一天
給長(zhǎng)工A; (1 = 2^0)
第二天
給長(zhǎng)工B,并把A拿回來(lái);(2 = 2^1)
第三天
給長(zhǎng)工A;(3 = 2^0 +
2^1)
第四天
給長(zhǎng)工C,并把A、B拿回來(lái);(4 = 2^2)
第五天
給長(zhǎng)工A;(5 = 2^0 +
2^2)
第六天
給長(zhǎng)工B,并把A拿回來(lái);(6 = 2^1 + 2^2)
第七天
給長(zhǎng)工A。(5 = 2^0 + 2^1 + 2^2)
上面三個(gè)問(wèn)題已經(jīng)很能說(shuō)明二進(jìn)制在趣味數(shù)學(xué)中的應(yīng)用了,我們使用這種方法可以解決一系列的此類問(wèn)題。下面是一個(gè)有趣的藥瓶問(wèn)題:
一家藥店收到運(yùn)來(lái)的某種藥品十瓶。每瓶裝藥丸1000粒。藥劑師懷特先生剛把藥瓶送上架子,一封電報(bào)接踵而來(lái)。懷特先生把電報(bào)念給藥店經(jīng)理布萊克小姐聽(tīng)。
懷特先生:“特急!所有藥瓶須檢查后方能出售。由于失誤,其中有一瓶藥丸每粒超重10毫克。請(qǐng)即退回分量有誤的那瓶藥。懷特先生很氣惱。
懷特先生:“倒霉極了,我只好從每瓶中取出一粒來(lái)稱一下。真是胡鬧。
懷特先生剛要?jiǎng)邮郑既R克小姐攔住了他。布萊克小姐:“等一下,沒(méi)必要稱十次,只需稱一次就夠了。”
這怎么可能呢?
布萊克小姐的妙主意是從第一瓶中取出1粒,從第二瓶中取出2粒,第三瓶中取出3粒,以此類推,直至從第十瓶中取出10粒。把這55粒藥丸放在秤上,記下總重量。如果重5510毫克,也就是超過(guò)規(guī)格10毫克,她當(dāng)即明白其中只有一粒是超重的,并且是從第一瓶中取出的。
如果總重量超過(guò)規(guī)格20毫克,則其中有2粒超重,并且是從第二瓶中取出的,以此類推進(jìn)行判斷。所以布萊克小姐只要稱一次,不是嗎?
六個(gè)月后,藥店又收到此種藥品十瓶。一封加急電報(bào)又接踵而至,指出發(fā)生了一個(gè)更糟糕的錯(cuò)誤。
這一次,藥丸每粒超重仍然是10毫克,但是對(duì)超重藥丸的瓶數(shù)無(wú)可奉告,也就是說(shuō)可能有好幾個(gè)藥瓶超重。懷特先生氣惱極了。懷特先生:“布萊克小姐,怎么辦?我們上次的方法不中用了。布萊克小姐沒(méi)有立即回答,她在思索這個(gè)問(wèn)題。
布萊克小姐:“不錯(cuò)。但如果把那個(gè)方法改變一下,我們?nèi)匀恢恍璺Q一次就能把分量有誤的藥品識(shí)別出來(lái)。這回布萊克小姐又有什么好主意?
請(qǐng)大家仔細(xì)思考,然后運(yùn)用二進(jìn)制原理來(lái)解決吧。
在第一個(gè)秤藥丸問(wèn)題中,我們知道只有一瓶藥丸超重。從每瓶中取出不同數(shù)目的藥丸(最簡(jiǎn)單的方式就是采用計(jì)數(shù)序列),我們就可使一組數(shù)字和一組藥瓶成為一一對(duì)應(yīng)的關(guān)系。
為了解決第二個(gè)問(wèn)題,我們必須用一個(gè)數(shù)字序列把每瓶藥單獨(dú)標(biāo)上某個(gè)數(shù)字,且此序列中的每一個(gè)子集必須有一個(gè)單獨(dú)的和。有沒(méi)有這樣的序列?有的,最簡(jiǎn)單的就是下列二重序列:1,2,4,8,16,。。。這些數(shù)字是2的連續(xù)次冪,這一序列為二進(jìn)制記數(shù)法奠定了基礎(chǔ)。
在這個(gè)問(wèn)題中,解法是把藥瓶排成一行,從第一瓶中取出1粒,從第二瓶中取出2粒,從第三瓶中取出4粒,以此類推。取出的藥丸放在秤上稱一下。假設(shè)總重量超重270毫克,由于每粒分量有誤的藥丸超重10毫克,所以我們把270除以10,得到27,即為超重藥丸的粒數(shù)。把27化成二進(jìn)制數(shù):11011。在11011中自右至左,第一,二,四,五位上的“1”表示其權(quán)值分別為1,2,8,16。因此分量有誤的藥瓶是第一,二,四,五瓶。
這里有一個(gè)簡(jiǎn)單的撲克魔術(shù),可叫你的朋友莫名其妙。這個(gè)戲法也許看上去與砝碼問(wèn)題毫無(wú)關(guān)系,但他們的依據(jù)是相同的,都是二進(jìn)制原理。
請(qǐng)別人把一副牌洗過(guò),然后放進(jìn)你的口袋,再請(qǐng)人說(shuō)出一個(gè)1至15以內(nèi)的數(shù)字。然后你把手插進(jìn)你的口袋里,一伸手就取出一組牌,其數(shù)值相加正好等于他所說(shuō)的數(shù)字。
此秘密簡(jiǎn)單的很。在耍魔術(shù)之前,預(yù)先取出A,2,4,8各一張放入口袋。這副牌缺少區(qū)區(qū)四張,不大可能為人察覺(jué)。洗過(guò)的牌放入口袋后,暗中將其排置于原先已經(jīng)放在口袋中的四張牌的后面。請(qǐng)別人說(shuō)出一個(gè)數(shù)字,你用心算將此數(shù)表示成2的冪的和。如果是10,那你就應(yīng)想到:8+2=10, 隨即伸手入袋,取出2和8的牌示眾。
心靈感應(yīng)游戲的依據(jù)也是二進(jìn)制原理,準(zhǔn)備六張卡片,分別記為A,B,C,D,E,上面寫(xiě)著1~31之間的一些整數(shù)。請(qǐng)一位觀眾想好此范圍內(nèi)的一個(gè)數(shù)字(例如某個(gè)人的年齡),然后請(qǐng)他把所有上面有此數(shù)字的卡片都交給你。你隨即說(shuō)出他心中所想的那個(gè)數(shù)字。
卡片如下:
A:1
3 5 7
9
11 13 15
17
19 21 23
25
27 29 31
B:2
3 6 7
10
11 14 15
18
19 22 23
26
27 30 31
C:4
5 6 7
12
13 14 15
20
21 22 23
28
29 30 31
D:8
9 10 11
12
13 14 15
24
25 26 27
28
29 30 31
E:16
17 18 19
20 21
22 23
24
25 26 27
28
29 30 31
秘訣就是把每張卡片上2的冪的第一個(gè)數(shù)字相加。例如,如果把卡片C和E交給你,你只要將上面第一個(gè)數(shù)字4和16相加,便知道別人心中所想的數(shù)字是20。
這是為什么呢?
我們觀察卡片上的數(shù)字,可以發(fā)現(xiàn)這樣一個(gè)規(guī)律:第一張卡片(A)上的數(shù)字如果用五位二進(jìn)制表示,則分別為00001,00011,00101,00111,01001,01011,01101,01111,10001,10011,10101,10111,11001,11011,11101,11111。
第二張卡片(B)上的數(shù)字如果用五位二進(jìn)制表示,則分別為00010,00011,00110,00111,01010,01011,01110,01111,10010,10011,10110,10111,11010,11011,11110,11111。
第三張卡片(C)上的數(shù)字如果用五位二進(jìn)制表示,則分別為00100,00101,00110,00111,01100,01101,01110,01111,10100,10101,10110,10111,11100,11101,11110,11111。
請(qǐng)大家注意觀察,第一張卡片上每個(gè)二進(jìn)制數(shù)的右起第一位都是“1”,第二張卡片上每個(gè)二進(jìn)制數(shù)的右起第二位都是“1”,第三張卡片上每個(gè)二進(jìn)制數(shù)的右起第三位都是“1”。依此類推,我們可以發(fā)現(xiàn)第n張卡片上每個(gè)二進(jìn)制數(shù)的右起第n位都是“1”。
觀眾所想的數(shù)字和卡片的關(guān)系只有“有”和“無(wú)”兩種狀態(tài),正好與二進(jìn)制數(shù)碼0與1一一對(duì)應(yīng)。“有”我們就記為“1”,“無(wú)”我們就記為“0”,這樣觀眾交給我們的卡片組合,就對(duì)應(yīng)一個(gè)二進(jìn)制數(shù),如把卡片C和E交給你,那卡片組合就是“有無(wú)有無(wú)無(wú)”,對(duì)應(yīng)二進(jìn)制數(shù)為“10100”,即十進(jìn)制數(shù)“20”。又如把卡片A,B和E交給你,那卡片組合就是“有無(wú)無(wú)有有”,對(duì)應(yīng)二進(jìn)制數(shù)為“10011”,即十進(jìn)制數(shù)“19”。
二進(jìn)制數(shù)的位數(shù)越多,能夠表示的數(shù)值就越大,如果有6張卡片,則表示的數(shù)字范圍擴(kuò)大到1~63,7張卡片則可以表示1~127。
有時(shí),魔術(shù)師為了使得這個(gè)戲法顯得更加玄妙,故意把每張卡片涂上各種不同的顏色。他只需記住每種顏色所代表的2的冪。例如,紅卡片代表1,橙卡片代表2,黃卡片代表4,綠卡片代表8,藍(lán)卡片代表16,紫卡片代表32(可依據(jù)彩虹的諸色順序)于是,魔術(shù)師站在大房間的一頭,請(qǐng)人想好一個(gè)數(shù)字,并且把上面有此數(shù)字的卡片置于身旁,他即可根據(jù)那人身旁的卡片的顏色隨口說(shuō)出別人心中所想的數(shù)字。
根據(jù)這個(gè)原理,人們還設(shè)計(jì)來(lái)好玩的猜姓氏和年齡的游戲:
表演者拿出七張卡片,每張卡片上都寫(xiě)滿了數(shù)字和姓氏,卡片如下:
表一:
趙1 孫3 周5 鄭7 馮9 褚11 蔣13 韓15
朱17 尤19 何21 施23 孔25 嚴(yán)27 金29 陶31
戚33 鄒35 柏37 竇39 云41 潘43 奚45 彭47
魯49 昌51 苗53 花55 俞57 袁59 邦61 史63
費(fèi)65 岑67 雷69 倪71 滕73 羅75 郝77 安79
樂(lè)81 時(shí)83 皮85 齊87 伍89 元91 顧93 平95
和97 肖99
表二
錢2 孫3 吳6 鄭7 陳10 褚11 沈14 韓15
秦18 尤19 呂22 施23 曹26 嚴(yán)27 魏30 陶31
謝34 鄒35 水38 竇39 蘇42 潘43 范46 彭47
韋50 昌51 鳳54 花55 任58 袁59 鮑62 史63
廉66 岑67 賀70 倪71 殷74 羅75 鄔78 安79
于82 時(shí)83 卞86 齊87 余90 元91 孟94 平95
穆98 肖99
表三:
李4 周5 吳6 鄭7 衛(wèi)12 蔣13 沈14 韓15
許20 何21 呂22 施23 華28 金29 魏30 陶31
喻36 柏37 水38 竇39 葛44 奚45 范46 彭47
馬52 苗53 鳳54 花55 柳60 邦61 鮑62 史63
薜68 雷69 賀70 倪71 畢76 郝77 鄔78 安79
傅84 皮85 卞86 齊87 卜92 顧93 孟94 平95
尹100
表四
王8 馮9 陳10 褚11 衛(wèi)12 蔣13 沈14 韓15
張24 孔25 曹26 嚴(yán)27 華28 金29 魏30 陶31
章40 云41 蘇42 潘43 葛44 奚45 范46 彭47
方56 俞57 任58 袁59 柳60 邦61 鮑62 史63
湯72 滕73 殷74 羅75 畢76 郝77 鄔78 安79
廉88 伍89 余90 元91 卜92 顧93 孟94 平95
表五
楊16 朱17 秦18 尤19 許20 何21 呂22 施23
張24 孔25 曹26 嚴(yán)27 華28 金29 魏30 陶31
郎48 魯49 韋50 昌51 馬52 苗53 鳳54 花55
方56 俞57 任58 袁59 柳60 邦61 鮑62 史63
常80 樂(lè)81 于82 時(shí)83 傅84 皮85 卞86 齊87
廉88 伍89 余90 元91 卜92 顧93 孟94 平95
表六:
吳32 成33 謝34 鄒35 喻36 柏37 水38 竇39
章40 云41 蘇42 潘43 葛44 奚45 范46 彭47
郎48 魯49 韋50 昌51 馬52 苗53 鳳54 花55
方56 俞57 任58 袁59 柳60 邦61 鮑62 史63
黃96 和97 穆98 肖99 尹100
表七:
唐64 費(fèi)65 廉66 岑67 薜68 雷69 賀70 倪71
湯72 滕73 殷74 羅75 畢76 郝77 鄔78 安79
常80 樂(lè)81 于82 時(shí)83 傅84 皮85 卞86 齊87
廉88 伍89 余90 元91 卜92 顧93 孟94 平95
黃96 和97 穆98 肖99 尹100
表演者說(shuō):“任何人只要你的年齡和姓氏在這幾張上,我都可以立即猜
中。”
他的話音剛落,有人說(shuō):“我的年齡在第一張表上。”
“別的表上都沒(méi)有么?”表演者問(wèn)。
那人又詳細(xì)地端詳一下,補(bǔ)充說(shuō):“第三張、第五張表上也有。”
“凡是表上有的,不能遺漏!”表演者說(shuō),“如果你的年齡只在第一、三、五三張表上,那么你的年齡應(yīng)該是21歲。”
果然猜中了!
又有人說(shuō);“我的姓在二、三、四、五、七表上有。”
“這就是說(shuō),你是孟老夫子的后代了!”
人們接二連三地問(wèn),表演者一個(gè)個(gè)回答,竟然沒(méi)有一次失誤,大家驚奇得目瞪口呆。可是,誰(shuí)都不了解這奇特的表格里隱藏著的秘密,除了聰明的你。
趕快給大家揭開(kāi)其中的奧秘吧!