腾讯2014实习生笔试题--德梅齐里亚克砝码问题

问题

珠宝商甲需要去鉴定一批41克以下的宝石(可能是41克以下不包括41克的任意重量),他只能携带一个天平和四个砝码去称重,请问他会携带那些重量的砝码?

来源

2014腾讯暑期实习生附加题第一题

解决方案

第一种

这道题的本质应该是这样,用4个数来表示1-40.刚开是我的思路是使用二进制,但是二进制显然是不够的

2^4 = 16

所以,考试的时候没有做上来,智商捉急。今天搜索了一下答案,参考了cnblog上一篇文章下的评论撰写把本文。

采用三进制,即

3^4 = 81

所以进一步地,就是解决如何用4位3进制数来表示40这个数,即

40/3 = 13---1
13/3 = 4---1
4/3 = 1---1
1/3 = 0---1

三进制表示为1111,即

1*3^3+1*3^2+1*3^1+1*3^0 = 27+9+3+1

所以这四个砝码的重量为27,9,3和1

评论下的某位大神用C++把算法写出来了。

第二种

在百度知道上看到的,这是德梅齐里亚克砝码问题
原题是这样的,摘自百度百科

一位商人有一个40磅的砝码,由于跌落在地而碎成4块.后来,称得每块碎片的重量都是整磅数,而且可以用这4块来称从1至40磅之间的任意整数磅的重物.
问这4块砝码碎片各重多少?

法国数学家G.B.德·梅齐里亚克(1581一1638)在他的著作中解答了这题. 为使两砝码A与B能称出最多种重量,必须是1磅和3磅,用它们能称出1、2、3、4磅的重物。如选第三块砝码C的重量为2x4+1=9磅,则用它们可称出1至9+4=13磅间的所有整数磅重物。最后选第四块砝码D,使它重量为2x13+1=27磅,那么用这四块砝码能称出从1至27+13=40磅的重物.因此,这四块砝码的重量分别为1、3、9、27磅。

更详细的关于德梅齐里亚克砝码问题,还是看CSDN这篇博客,很详细。

其实这就是德梅齐里亚克砝码所带来的整数最优拆分法,用1和3可以构造一切有理数。

公式

X=M*2+1

其中X为M的后一项数,M为X前所有项的和。初值M为1,那么往后推论就可以推出任意的数值,即

M=1
M = 1, X = 3
M = 1 + 3, X = 9
M = 1 + 3 + 9, X = 27
M = 1 + 3 + 9 + 27, X = 81
M = 1 + 3 + 9 + 27 + 81, X = 243

发现这就是3的各次幂序列

3^0, 3^1, 3^2, 3^3, 3^4, 3^5......

世界上最完美的砝码组合---神秘的“3”重现江湖!这篇文章讲的更为透彻。原文里有这么句话让我对老子,对道家,对中华文化的博大精深所折服。

全是数字“3”的各次幂…神奇而又神秘的“3”再次出现!
让人情不自禁地又一次想起“三生万物”!
说句老实话,有多少人在研究老子道德经,就是无法对老子的这句话彻底理解明白:
“道生一,一生二,二生三,三生万物”

总结

道生一,一生二,二生三,三生万物

你可能感兴趣的:(德梅齐里亚克砝码,算法)