1. 程式人生 > >MT【142】Bachet 問題,進位制

MT【142】Bachet 問題,進位制

目標 既然 play 圖片 alt 質量 class pan 組合

問題:
滿足下面兩種限制條件下要想稱出40以內的任何整數重量,最少要幾個砝碼:
i)如果砝碼只能在天平的某一邊;
ii)如果砝碼可以放在天平的兩邊.
技術分享圖片

提示:對於 i)先證明如下事實:
\[\textbf{砝碼 $1,2,4,\cdots,2^{n-1}$ 可以稱出 $2^n-1$ 以內的任何整數質量,且沒有其他的僅由 $n$ 個砝碼組成的集合具有同樣的稱重效果(能稱出同樣多的一列從 $1$ 開始的連續重量)}\]

分析:
因為 \(1\)\(2^n-1\) 的任何正整數無一例外的可以用唯一的表示方式表示成一個 \(n\) 位二進制數,表示成和式為\(\sum\limits_{0}^{n-1}{a_s2^s}\)

, 其中 \(a_s\in\{0,1\}\). 從而這樣的砝碼就可以滿足我們的目標,且"沒有浪費"(沒有兩種砝碼的組合會產生相同的效果).既然沒有浪費,故沒有另外的選擇的砝碼能稱更長的一列重量.
為了稱重量為 \(1\) 的質量,有一個砝碼必須是 \(1\) ;為稱重量為 \(2\) 的質量,有一個砝碼必須為 \(2\); 為稱重量為 \(4\) 的質量,有一個砝碼必須為 \(4\); 依此類推, \(1,2,4,\cdots,2^{n-1}\) 是能實現我們目標的唯一的一組砝碼.

回到此題,
40不是形如\(2^n-1\)的數,由上述分析 可知道,砝碼 \(1,2,4,8,16,32\)

可以稱出 63 以下的任何質量,而沒有五個砝碼可以稱出超過\(31\)的質量.但值得註意的是對於 40 而言,解答不唯一.砝碼 1,2,4,8,9,16 也能稱出 40 以內的任何質量.

對於ii)可以參考北大的自主招生題MT【38】

MT【142】Bachet 問題,進位制