1. 程式人生 > >三進位制與兩道趣味數學題

三進位制與兩道趣味數學題

現在我們普遍使用十進位制進行數學運算,另一種常使用的進位制是二進位制,在計算機運算之中。
日常生活中好像沒有三進位制的立足之處。1個季度是3個月,應是三進位制。交通訊號的紅綠黃的三種狀態可以表示0、1、2來描述,這似乎與三進位制沾上了邊,可是最近紅綠黃燈多變成了紅綠燈,三進制變成了二進位制。
雖然在日常生活中少有表現的機會,但是用三進位制就非常容易解決兩道經典趣味數學題。
(一)砝碼問題
這道砝碼問題是巴協(Bachet)給出的:要想在天平上稱出1到40磅在內的任何整磅數,問最少需要幾個多重的砝碼?這裡有兩種放置砝碼的辦法:(1)所有砝碼只放進天平的一端,(2)砝碼可以放進天平的兩端。
對於(1),砝碼具有兩種狀態,不放或者放。記不放為0,放為1,這個問題可以使用二進位制來解決。二進位制的砝碼重量設定為1、2、4、8、16、32。在1到1+2+4+8+16+32也就是63之內的任何數量都可以用1、2、4、8、16、32中的某幾個數相加得到。所以問題(1)的砝碼數是6個,每個砝碼的重量設定為1、2、4、8、16、32磅。

對於(2),砝碼具有三種狀態,不放、放在天平左端、放在天平右端。記不放為0,放左邊為1,放右邊為-1,這個問題可以使用三進位制來解決。在三進制中,砝碼的重量設定為1、3、9、27.。在1到1+3+9+27也就是40之內的任何數量都可以用1、3、9、27中的某幾個數相加或者相減獲得。
我們來看這幾個砝碼是如何稱量1到40的:

1=1;2=3-1;3=3 ;4=3+1;5=9-3-1 ;6=9-3 ;
7=9-3+1;8=9-1 ;9=9 ;10=9+1 ;11=9+3-1
……
35=27+9-1; 36=27+9;37=27+9+1
38=27+9+3-1;39=27+9+3;40=27+9+3+1

這裡,加號意味著天平左邊放置砝碼,減號意味著天平右邊放置砝碼(與被稱重的物體放在同一端)。

如果我們增加兩個砝碼81磅和243磅,用6個砝碼可以就稱重1到364磅的重量。如果砝碼繼續按3的冪次增加重量,則稱重的範圍越來越大。用重量為1、3^2、3^3、……、3^n的n個砝碼可以稱出從1到(3^n-1)/2的所有重量。
問題是,如果一個被稱物體較重,我們該如何在天平兩端放置砝碼呢?這裡涉及到十進位制向三進位制的計算。像十進位制轉化為二進位制一樣,轉化方法就是連續的除法運算(這裡不打算詳細介紹)。
例如,(80)10=(2222)3
等式右邊的含義是,80可以用2個1、2個3、2個9、2個27相加而成。
在天平稱重中,我們要的是最少的砝碼數,我們可以把2變成(10-1)3(簡記為-1),也就是說,一個大一級的砝碼減去一個小一級的砝碼。大砝碼放在天平左端,小砝碼和被稱重物一同放在天平右端。

因為,(2222)3=(1000-1)3 ,該式的含義就是用2個1、2個3、2個9、2個27加成的得數等於用1個81減去1的得數。
所以,要稱重80磅的物體,需要在天平左邊放置1個81磅的砝碼,在天平右邊放置一個1磅的砝碼。
又例如,如果我們用最少的砝碼稱出了一個331磅的東西,我們究竟用了哪幾個砝碼呢?
因為(331)10=(110021)3=(110101-10)3
所以,要稱重331磅的物體,需要在天平左邊放置1個243磅的砝碼、1個81磅的砝碼、1個9磅的砝碼、1個1磅的砝碼,在天平右邊放置一個3磅的砝碼。
因為每一次稱量能區別3個球,將12表示為三進位制。
作為練習思考題,我們把巴協(Bachet)的砝碼問題稍稍擴大一些:要想在天平上稱出1到500磅在內的任何整磅數,問最少需要幾個多重的砝碼?這裡有兩種放置砝碼的辦法:(1)所有砝碼只放進天平的一端,(2)砝碼可以放進天平的兩端。

(二)稱球問題
我們先來描述一下這道經典的趣味數學問題:
有12個外表相同的球,其中有1個壞球,它的重量和其他11一個有輕微的(但是可以測量出來的)差別。現在有一架沒有砝碼的很靈敏的天平,問如何稱三次就保證找出那個壞球,並知道它比標準球重(輕也同理)。
現在我們把問題先擱置在一邊,嘗試做一些基礎的工作。
先從3個球開始。把其中的2個球放在天平上,(1)如果天平平衡,則未放進天平中的1球為壞球;(2)如果天平不平衡,壞球必定在天平重的一端。因此,稱量1次就可以找到那個環球。
把球增加到9個。把9個球分成3堆,每堆3個球。把其中2堆放在天平上,(1)如果天平平衡,則未放進天平中的1堆3個球中必有1壞球;(2)如果天平不平衡,壞球必定在天平重的一端的3個球中。對有壞球的3個球中按照上述步驟稱量1次,就可找出那個環球因此,稱量2次就可以找到那個環球。
繼續把球增加到27個。把27個球分成3堆,每堆9個。把其中2堆放在天平上,(1)如果天平平衡,則未放進天平中的1堆9個球中必有1壞球;(2)如果天平不平衡,壞球必定在天平重的一端的9個球中。按照上面步驟,可以找到球球。因此,稱量3次就可以找到壞球。
以此類推,可以得出結論:球的個數為N(其中1個為壞球),轉化為三進位制
N=(100…0)3,假定出現了m個0,0的個數m就是需要稱量的次數m。
例如,81=(10000)3,表示如果在81個球中有一個壞球,稱量4次即可找到那個壞球
729=(1000000)3,表示在729個球中有一個壞球,稱量6次即可找到那個壞球。
上面講述的是球的個數剛好是3的整數m次方的情形。如果球的個數不是如此,又該如何呢?正如一開始就出現的問題那樣,是12個球的情形。
我們先來看4個球的情形。把4個球分成1球、1球、1球和1球共4堆,則2次稱量可找到壞球。再來看8個球的情形,可以分成 3球、3球、2球共3堆,則稱量2次也可找到壞球。
對於12個球的情形可以同樣完成,可以把12個球9球、3球共2堆。按照上面描述的辦法,稱量3個就可以找到壞球。
以此類推,我們的結論是:
球的個數為N(其中1個為壞球),轉化為三進位制
(100…0)3(m+1個0)< N <=(100…0)3(m個0),
m+1就是需要稱量的次數。
也就是說,從27個球找出1個壞球與從10~26個球中找出1個壞球,所需要的稱量次數是完全一樣的,都只需要3次。
我們把任意一個正數N改寫成三進位制的數相加,就可以找到整個稱量的過程。
26=(100)3+(100)3+(10)3+(10)3+(1)3+(1)3
例如,要在26個球中找出其中的1個壞球,只要把26分成9球、9球、3球、3球、1球、1球這樣的6堆,只要稱量3次就可以了。
第一次,9個球放在天平兩端,如天平不平衡,壞球必在某一端的9個球之中,重複上述步驟可找到。如天平平衡;則把未放在天平的3個球、3個球放在天平上。如天平還不平衡,則把1個球、1個球放在天平上,則必定不平衡,壞球找到。
好了,我想類似問題的解決應該是很輕鬆的。例如,100枚硬幣中有1枚重於其他99個標準硬幣的壞硬幣。如何用沒有砝碼的天平,以最少的次數找到這枚壞硬幣。