从吃药中想到的数学问题寒假时天很冷,刘畅得了病,便去医院开了药。
他发现,当打开瓶盖吃药时,里面必定会散出一点药味。
并且,他便将这现象告诉了我。
于是,我们便一起讨论。
显然,这是药品挥发的结果。
有挥发,就必然有损失。
可是,每次打开瓶盖只吃一片药,其余的药片也要跟着一块损失。
为了减少损失,我们找到了一个空瓶,如果从原瓶里倒出一些药放到新瓶里,再从新瓶里吃药,这样要比只从一个瓶里吃药要少一些损失。
一.提出问题上面我们已经说过,用两个瓶吃药比较好。
那么具体如何取药,即分几次取,每次取几片呢?这便是我们提出的问题。
对于这个问题,必须做出一个合理的假设,既每打开一次瓶盖,瓶里每一个药片都减少相同的质量。
有了这个假设,我们就可以继续了。
二.提出命题现在我们把刚才提出的实际问题变成严格的数学问题:已知:1. 原瓶中有n片药,一次吃一片,要求全部吃完。
2.有一个新瓶,也可以装药片,它和原瓶是一样大的(即足够大)。
3.每打开一次瓶盖,里面的每一片药都减少1个单位的质量。
问:如何吃药可使损失最少。
四.分析问题1.首先,我们要确定一个规则,即把吃药的过程看成都从新瓶里吃药。
实际上,这条存在与否,是与实际的损失无关的,因为我们从原瓶里取药装入新瓶的时候是要吃一片药的。
但是我们可以把它看成是:把药片装入新瓶后先不要盖瓶盖,而先拿出一片药吃,再盖上瓶盖。
我们定这个规则的目的是为了下面说明的方便。
当然,我们只是用这种规则想问题,在实际操作时是不会这样麻烦的去吃药的。
2.其次,我们要证明一个预备命题。
命题1:要想得到最优解,每次应该把新瓶的药吃完,再从原瓶里拿药吃。
证明:假设命题不成立。
则可设上一次从原瓶里取了p+m片药,吃了p片后,新瓶里还剩m片。
这时,又要从原瓶里取药。
那么如果上次取药时只取p片药,吃完了再取。
同样是吃p片药。
第二种方法就比第一种节省(p-1)*m 个单位的质量。
又因为p>=1,m>0,所以(p-1)*m>=0,即采用第二种方法一定不会比第一种方法差。
所以不应该采用第一种方法。
即原假设不成立,原命题成立。
证毕。
3.有了这个命题,我们就可以得到一个计算公式了。
设:n片药分i次吃完,第一次取p1片,第二次取p2片,依次类推,第i次取pi片。
则我们用(p1,p2,…,pi)来表示整个的取法。
符号[p1,p2,…,pi]表示浪费的总的损失。
对于任意一取法(p1,p2,…..,pi),再吃前p1片药时,浪费的总量是,(p1+1)*p1/2(吃药时的浪费)+(p2+p3+…+pi)(开盖时的浪费),对于其他的,式子形式同前。
最后的总和是:[p1,p2,…,pi]=∑(pj+1)pj/2+∑(j-1)pj4.根据上面的计算公式,我们继而证明了下面两个命题。
命题2:整个的吃药过程中会从原瓶里取若干次药,但对于相邻的两次,不妨设为第k次和第k+1次,Ak,A(k+1)分别代表第k次和第k+1次所取的药片的数量。
则若要得到最优解,则应有Ak>A(k+1)。
证明:假设命题不成立,即有Ak<A(k+1)。
则如果把Ak,A(k+1)调换,即第k次取A2个,第k+1次取Ak个。
则实际上是将(A(k+1)-Ak)个药片由第k+1次吃转移到第k次吃。
设总共取I次。
第一种吃法的总耗费:[A1,A2,…A(k-1),Ak,A(k+1),A(k+2),…Ai]=∑(pj+1)pj/2+∑(j-1)pj =∑(pj+1)pj/2+∑(j-1)pj +(k-1)*Ak+k*A(k+1)+∑(j-1)pj第二种吃法的总耗费:[A1,A2,…A(k-1),A(k+1),Ak,A(k+2),…Ai]= ∑(pj+1)pj/2+∑(j-1)pj +(k-1)*A(k+1)+k*Ak+∑(j-1)pj可以看出,这两种方法只有在红字方面有所不同。
现在暂称红色的式子的和为特殊和。
经化简,特殊和1=k*Ak+k*A(k+1)-Ak;特殊和2=k*Ak+k*A(k+1)-A(k+1)因为Ak<A(k+1),所以特殊和1>特殊和2。
即[第一种]>[第二种]。
即第二种取法比第一种好。
所以不应采用第一种取法。
即原假设不成立。
所以原命题成立。
证毕。
命题3:整个的吃药过程中会原瓶里取若干次药,但对于相邻的两次,不妨设为第k次和第k+1次。
Ak,A(k+1)分别代表第k次和第k+1次所取的药片的数量。
则若要得到最优解,则应有Ak-A(k+1)<2。
证明:假设命题不成立。
即Ak-A(k+1)>=2。
如果我们第k次取Ak-1个,第k+1次取A(k+1)+1个。
第一种吃法的总耗费:[A1,A2,…A(k-1),Ak,A(k+1),A(k+2),…Ai]=∑(pj+1)pj/2+∑(j-1)pj =∑(pj+1)pj/2+∑(j-1)pj +(k-1)*Ak+k*A(k+1)+∑(j-1)pj第二种吃法的总耗费:[A1,A2,…A(k-1),Ak-1,A(k+1)+1,A(k+2),…Ai]=∑(pj+1)pj/2+∑(j-1)pj +(k-1)*(Ak-1)+k*(A(k+1)+1)+∑(j-1)pj可以看出,这两种方法只有在红子方面有所不同。
现在也暂称红色的式子的和为特殊和。
经计算,特殊和1-特殊和2=Ak-A(k+1)-2因为Ak-A(k+1)>=2,所以特殊和1>特殊和2,即第二次一定不会比第一次差。
即原假设不成立,原命题成立。
证毕。
5.根据第2,3个命题,我们设计了一条规则,称其为规则1。
即对于任意一种取法,我们应先把它按取药的数量从大到小排序。
这时找到了一个新取法,那么这个取法不比原来的取法差。
(根据命题2)。
然后把这列新数,从高到低依次做这样的处理:如果此数比大2或2以上,则把这个数减一,把下个数加一。
如此循环往复,直到没有数再可以变更为止。
又得到了一个新取法。
这个取法又一定不比第二种取法差(根据命题3)。
我们认为,经过这种法则变换后的数列,一定是比较好的吃药法则。
我们试了几个数:当n=6即吃6片药时,对于取法(1,1,4),我们根据上法则,做如下变换:(1,1,4)——(4,1,1)——(3,2,1)。
对于取法(1,5),则这样变换:(1,5)——(5,1)——(4,2)——(3,3)——(3,2,1)。
(对最后一步,可以看成是由(3,3,0)——(3,2,1))我们发现,对于大多数的取法,经过上规则的变换,总能变成(3,2,1)的形式。
当n=7即吃7片药是,对于取法(1,1,5),可做如下变换:(1,1,5)——(5,1,1)——(4,2,1)——(3,3,1)——(3,2,2)——(3,2,1,1)对于其他的大部分取法,我们同样可以把他变成(3,2,1,1)的形式。
通过上面的结论,我们找到了一个规律。
即,若k(k+1)/2<=n<(k+1)(k+2)/2,则另b=n-(k+1)k/2 应该这样取,(k,k-1,…,b+1,b,b,b-1,…,1),我们称其为规律1。
但我们也发现,有些取法是不能变成如上形式的。
譬如,当n=7时,若对于取法(1,1,1,1,1,2),最后只能变成(2,1,1,1,1,1)。
而这种取法是比(3,2,1,1)差的。
6.通过研究,我们发现刚才的规则略有不妥之处。
于是我们又制定了一个规则,称其为规则2。
即对于一种取法,先将其用规则1处理。
然后从高到低检查,如果有两对相同的数字,如(…5,5,4,3,2,2,…),则须对其进行如下改动:将两对相同数字中的之一,较大的加一,较小的减一。
对于上例,变为(…6,5,4,3,2,1…)。
这样改的原因,和命题2,3类似,都是不与整体有关,只与特殊和有关,这里不再赘述。
证明:有了规则1和规则2的共同作用,我们找到的规律就对上面的所有例子都成立了。
那么我们设计一个函数,F(n),表示吃n片药,最理想时,损失药片时的总质量。
根据我们找到的规律,并根据计算公式得出了F(n)的解析式。
F(n)=b*n-(b-1)b(b+1)/6其中,(b-1)*b/2<=n<(b+1)*b但这只是找规律得出的结论,下面我们希望对其进行科学的论证。
五.解决问题我们将用数学归纳法对其进行论证。
当n=1时,F(n)=1,式子显然成立,这时规律一也成立。
则若n∈[1,k]时式子成立(规律一也成立)。
当n=k+1时,设第一次取p1片药。
则吃完后还剩(n-p1)片。
则(n-p1)∈[1,k],根据归纳假设。
这剩下的n-p0片的最省情况是F(n-p1)。
所以整个的损失为 n-p0(第一次开盖时别的药片的损失)+p0(p0+1)/2(吃前p0片药的损失)+F(n-p0)。
将其化简,即F(n-p1)+n+p1(p1-1)/2 =b(n-p1)-(b+1)(b-1)b/6+n+p1(p1-1)/2其中,b是这样的自然数,(b-1)*b/2 <= n-p1 <(b+1)*b,根据规律一,第二次取药应取b-1片,即p2=(b-1),而根据命题3,p1-2应小于p2。
又根据命题3,p1>=p2。
那么,最后的只有一种取法。
即满足规律一的取法。
即对于n=k+1,式子也是成立的。
则对于一切n,n∈N,F(n)的解析式都是正确的。
证毕六.总结我们的这个研究结果不仅适用于吃药问题,还可以解决同一个模型的问题。
比如,一台电脑里储存了一些信息,现要用软盘将其一点点的拷贝走。
要把一条信息转移到软盘上要搜索整个硬盘上的信息,这就要耗费一些时间。
已知手上有两个硬盘,则如何拷贝最省时间。
此问题就可以用我们的研究结果解决。