问题描述:一个M重的砝码,最少分成N块,使得所有1-M重的物品都可以用这N块砝码称出。
分析:1、很容易想到二进制的方法,即每一块可以取也可以不取,即0和1,分类即1+2+4+...+2^(N-2)+X=M。
证明:
由二进制可知1-(2^(N-1)-1)都可以称出,设现在需要称出2^(N-1)-1+Y的重量(Y<=X)。
可由前N-1个砝码中去除重量和为X-Y的砝码,加上第N个砝码后重量为:
2^(N-1)-1-(X-Y)+X = 2^(N-1)-1 + Y,得证。
2、其实第一种方法取得的N不是最优,因为天平的两端都可以放砝码,相当于每个砝码的取值可以有三个:-1,0,1。很容易想到三进制,分类即1+3+9+...+3^(N-2)+X=M。
当某一位取2时,更高位+1,该位砝码放置在天平另一端,即该位取-1。其他同上。