题目1:共有三类药,分别重1g,2g,3g,放到若干个瓶子中,现在能确定每个瓶子中只有其中一种药,且每瓶中的药片足够多,能只称一次就知道各个瓶子中都是盛的哪类药吗?
如果有4类药呢?5类呢?N类呢(N可数)?
如果是共有m个瓶子盛着n类药呢(m,n为正整数,药的质量各不相同但各种药的质量已知)?你能只称一次就知道每瓶的药是什么吗?
注:当然是有代价的,称过的药我们就不用了
解题思路: 未知
第一个瓶子拿出一片,第二个瓶子拿出四片,第三个拿出十六片,……第m个拿出n+1的m-1次方片。把所有这些药片放在一起称重量。
题目2:某君有5个药瓶,都装有1000颗同类心脏病药。很不幸,其中一瓶被其仇家动了手脚,换作了毒药。
药瓶都一个样,看不出差别。
某君心脏病很重,需要服用大量药片才能勉强存活。现在他得知了仇家的阴谋,气得几乎没有力气。
现在他找到一个天平,但是他太虚弱,最好称一次就把毒药找出来。
幸好仇人告诉过他:正常的药丸重10mg,毒药重9mg。
解题思路:因为只要找出其中一个重量与其他不同的集合,只需按1,2,3,4,5标号,第n瓶拿出n个样品。
这样如果全一样总量的话,总重量为Z1 = n(n+1)/2 * w,
如果第i瓶为目标,且重量为x,则它与正品的重量差为i(x-w),则实际总重量Z2 = z1+ i(x-w)
因此i = (Z2-Z1)/(x-w).
题目3:有十瓶药,每瓶里都装有100片,其中有八瓶里的药每片重10克,另有两瓶里的药每片重9克。用一个蛮精确的小秤,只称一次,如何找出份量较轻的那两个药瓶?
解题思路:若两瓶较轻的药瓶分别取出了x和y片,则最后得到的是x+y的值。因此要求x+y在取出的数量数列中具有唯一解。
因此
1)对于取出数列的ai和aj,不存在 ak和as,使ai+aj = ak+as,k,s不同时等于i和j
2)对于任意ai和aj, ai不等于aj
比如数列:1,2,3,5,8