一道关于药的思维逻辑题:***有三类药分别重1g,2g,3g,放到若干个瓶子中。请把过程说的越详细越好,谢了

先看最简单的情况***有三类药,分别重1g,2g,3g。

我们可以给瓶子编号分别为1号,2号和3号。

现在从1号瓶取出1片,2号瓶取出10片,3号瓶取出100片,上秤称,重量是一个三位数。

其中个位数字对应1号瓶药片重量,十位数字对应2号瓶药片重量,百位数字对应3号瓶药片重量。

问题解决。

同理,若***有四类药,分别重1g,2g,3g,4g。

我们可以给瓶子编号分别为1号,2号,3号和4号。

现在从1号瓶取出1片,2号瓶取出10片,3号瓶取出100片,4号瓶取出1000片上秤称,重量是一个四位数。

其中个位数字对应1号瓶药片重量,十位数字对应2号瓶药片重量,百位数字对应3号瓶药片重量,千位数字对应4号瓶药片重量。

问题解决。

问题是解决了,可太浪费药片了(虽然足够多),有没有更好的办法?有的。

再以三类药,分别重1g,2g,3g为例。

我们可以给瓶子编号分别为1号,2号和3号。

现在从1号瓶取出1片,2号瓶取出4片,3号瓶取出16片,上秤称,再把重量用四进制数表示。

则右起第一位数字对应1号瓶药片重量,右起第二位数字对应2号瓶药片重量,右起第三位数字对应3号瓶药片重量。

问题解决。

这是为什么?

十进制的1对应四进制的1,十进制的4对应四进制的10,十进制的16对应四进制的100

这与分别取1,10,100片最后用十进制的三位数表示没有本质的区别。

为什么用四进制?

这是因为药片的最大的重量为3,在四进制中不存在某一位向前进位的问题,这样使每一位数字都刚好对应某一瓶药片的重量。

同理,若***有四类药,分别重1g,2g,3g,4g。

我们可以给瓶子编号分别为1号,2号,3号和4号。

现在从1号瓶取出1片,2号瓶取出5片,3号瓶取出25片,4号瓶取出125片,上秤称,再把重量用五进制数表示,即可从右到左读出1至4号瓶内药片的重量。

通过上面的讨论,可得出此类问题的解法:

若***有N类药,分别放在N个瓶中,且最重药片重M,所有药片的重量均为正整数,

则我们可以给瓶子编号分别为1号至N号。

现从1号瓶取出1片,2号瓶取出(M+1)片,3号瓶取出(M+1)^2片,N号瓶取出(M+1)^(N-1)片,上秤称,再把重量用(M+1)进制数表示,即可从右到左读出1至N号瓶内药片的重量。

其实这样得出的结果,这个(M+1)进制数,每一位的数字均不同,因为每种药片的重量均不同。

但如果右起第一位与右起第二位的数字相同的话,说明1号瓶与2号瓶的药片重量相同,在本题的条件下,说明1号瓶与2号瓶装的是同一种药。

也就是说,以上的计算方法适合有同种药片装在不同药瓶的情况。

所以如果是***有m个瓶子盛着n类药,若m>n就是以上情况。(若m<n,则不同药装在相同的瓶中,应该没有这种情况)这里m的作用是,它决定最后的结果有m为数,而n的作用只表示在这m位数中有n种不同的数。

综上所述,若***有m个瓶子盛着n类药,且这n种中最重药片重量为A,所有药片的重量均为正整数,

则我们可以给瓶子编号分别为1号至m号。

现从1号瓶取出1片,2号瓶取出(A+1)片,3号瓶取出(A+1)^2片,N号瓶取出(A+1)^(m-1)片,上秤称,再把重量用(A+1)进制数表示,即可从右到左读出1至m号瓶内药片的重量。从而区分每一个瓶中药的种类。