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

轉自:http://blog.pfan.cn/goal00001111/36142.html

 

arrow
arrow
    全站熱搜

    klojer 發表在 痞客邦 留言(1) 人氣()