1.INTEL的一道面试题有10大瓶药丸,其中有若干瓶药丸受到了污染,已知未受过污染的药丸每粒重量为1g,受过污染的每粒为1.1g,现在手头有一个天平(带砝码),只称一次,便可以知道哪几瓶药丸受污染了。如何称?这题和另外一题相似。有100筐苹果,有99筐苹果每个重量都是500克,但有一筐苹果的重量为490克一个,问怎么秤一次就能把490克一个的那筐找出来。解法是给100筐都编上号,第1筐取1个,第2筐取2个……第100筐取100个,这样根据最后的重量和(1+2+3+4……100)x500比较就可以找出来。药丸这题因为是若干瓶受污染所以取法和苹果一样的话,没法找出受污染的药瓶。最初的想法就是编号以后,每瓶取10的n次幂,最后称出来的重量比对一下即可(如果第一瓶受污染则小数点多出0.1克,如果是第二瓶则是1克……)。
第1瓶取10^0=1粒
第2瓶取10^1=10粒
......
第10瓶取10^9=9000000000粒推广一下,取10的n次幂其实就是利用10进制来区分,那么二进制、三进制、四进制和其他都是可以的。比如二进制
第1瓶取2^0=1粒
第2瓶取2^1=2粒
......
第10瓶取2^9=512粒
如果第一瓶受污染则小数点多出0.1克,如果是第二瓶则是0.2克,如果多出0.7克,则应该是(2^2+2^1+2^0)x0.1=0.7,即第一瓶、第二瓶和第三瓶受污染了。又如三进
...
继续阅读
(6)