朋友们,来瓶汽水吧!有趣的换汽水问题
By 苏剑林 | 2015-10-28 | 32952位读者 |————怀念我曾经参加过的小学数学竞赛。
从一道小学竞赛题谈起 #
笔者小学五年级时参加了第一次数学竞赛,叫“育苗杯”,大多数题目都记不清楚了,唯一记得很清楚的是如下这道题目(不完全相同,意思类似):
假设汽水一块钱一瓶,而且4个空瓶子可以换一瓶汽水喝。如果我有30块钱,我最多可以喝到多少瓶汽水?
当然,这道题并不困难,30块钱能买30瓶汽水,然后留下30个空瓶子,这30个空瓶子可以换来7瓶汽水,剩下2个空瓶子;喝完汽水后,剩下9个空瓶子,可以换来2瓶汽水,剩下1个空瓶子;喝完汽水后,剩下3个空瓶子。算算看,这时候我们已经喝了30+7+2=39瓶汽水了。(不考虑撑着啊,也可以分给别人喝^_^)整个过程如下表:
$$\begin{array}{c|cccc}
\hline
\text{空瓶子数} & 30 & 2+7 & 1+2 & ? \\
\hline
\text{已喝汽水数} & 30 & 7 & 2 & ? \\
\hline \end{array}$$
这是不是最终答案呢?似乎是,我们还剩3个空瓶子,换不了汽水了。然而,神奇的一招是——先去“赊”一瓶汽水来,喝完后就有4个空瓶子了,拿这4个空瓶子去抵债!所以正确答案是40瓶!巧妙吧?请不要考虑允不允许赊账的问题,这里的问题是“最多”,因此,至少理论上是可以的。这里考我们的就是除了计算,更多的还是创意!(笔者为什么还记得那么清楚?因为笔者当时很没创意地做错了~~)
喝完汽水了,我们可以从另外一个角度分析问题,首先可以这样考虑,4个空瓶子,换来1瓶汽水喝,喝完后就留下1个空瓶子,这也就意味着相当于3个空瓶子换来1瓶“纯汽水”(不带瓶),这样子的话,我们的30个空瓶子,可以换来10瓶“纯汽水”,所以立马就得到答案是30+10=40瓶汽水了
$$30+30\div (4-1)=40$$
再来一个角度,我们可以考虑空瓶子的价值,这个角度更容易推广。空瓶子可以换汽水,这表明空瓶子是有价值的。也就是说,一瓶汽水的单价1元,事实上包含了“纯汽水”的单价($x$)和空瓶子的单价($y$),即$x+y=1$;其次,4个空瓶子可以换一瓶汽水,这也意味着4个空瓶子的价值就是1元,即$4y=1$,那么可以算得$x=3/4$,就是说一瓶“纯汽水”的价格实际为$3/4$元!我们有30元,希望全部换成“纯汽水”(就是说我只管喝汽水,不要瓶子),那么就可以喝到$30\div (3/4)=40$瓶!
加强版的换汽水 #
上述问题还可以进一步推广:
假设汽水一块钱一瓶,而且4个空瓶子可以换一瓶汽水喝,或者8个盖子也可以换一瓶汽水喝。如果我有30块钱,我最多可以喝到多少瓶汽水?
现在一瓶汽水被分为三个部分了:纯汽水、空瓶子、盖子。问题复杂化了,要注意空瓶子、盖子都可以兑换汽水,并且兑换时又带来新的空瓶子和盖子,简直没完没了。我们先来按照最原始的思路算算,先换完瓶子、再换盖子,直到换完。单独换一样的时候,可以用我们上述的简化版问题的结果来算,即分别除以(4-1=3)和除以(8-1=7):
$$\begin{array}{c|cccc}
\hline
\text{盖子数} & 30 & 30+10 & 5 & 5+1\\
\hline
\text{空瓶子数} & 30 & 0 & 0+5 & 2 \\
\hline
\text{已喝汽水数} & 30 & 10 & 5 & 1\\
\hline \end{array}$$
现在已经有46瓶了,剩下2个空瓶子,6个盖子,似乎不能再多了,因为再赊1瓶也换不了了。——慢着,赊1瓶不行,赊2瓶呢?赊2瓶,我们就得到4个空瓶子和8个盖子了,刚好拿去抵账!所以最终结果是48瓶。这里最后我们赊了两瓶,然后分别用空瓶子和盖子抵账!对,不要局限于不赊账,也不要局限于只能赊1瓶,只要你有足够的瓶和盖抵账,你可以多赊几瓶!
有什么直接的思路可以得到上面的结果呢?有!我们上述的价值思路就可以用上。设“纯汽水”、空瓶子、盖子的单价分别为$x,y,z$,那么可以列出
$$\left\{\begin{aligned}&x+y+z=1\\
&4y=1\\
&8z=1\end{aligned}\right.$$
求得$x=5/8$,也就是纯汽水的价格。所以我们最终可以喝到$30\div(5/8)=48$瓶纯汽水。
读者应该可以看出规律了吧,答案是
$$30\div\left(1-\frac{1}{4}-\frac{1}{8}\right)=48$$
如果不能整除,那就取整即可。显然,括号的式子是统一规律的。有没有更加直接的方法可以解释它呢?
反过来,从结果到过程 #
事实上,可以倒过来思考,得到更直接的思路。假设最终的结果是$W$瓶,那么我们自然期望,为了喝到这$W$瓶,我们已经“倾尽所有”——把所有瓶子和盖子都用光了。这也意味着,我们用空瓶子换来的汽水是$\frac{W}{4}$瓶,用盖子换来的汽水是$\frac{W}{8}$瓶,剩下的才是成本30瓶,所以有
$$W=\frac{W}{4}+\frac{W}{8}+30$$
即
$$W=30\div\left(1-\frac{1}{4}-\frac{1}{8}\right)=48$$
再比较一下 #
上面我们针对这个问题给出了几种思路,有直接的、间接的,有正面的、反面的,哪种思路最好呢?很难说,各人的看法不同。但是如果问哪种方法最实用(应用范围最广),那么似乎应该是“价值”思路最便于分析,即分析各个部分的单价应该是多少。比如下面的推广:
假设汽水一块钱一瓶,而且“3个空瓶子+2个盖子”可以换一瓶汽水喝,或者“2个空瓶子+4个盖子”也可以换一瓶汽水喝,单独空瓶子或盖子都不能换。如果我有30块钱,我最多可以喝到多少瓶汽水?
像这种混合型的换汽水,除了价值法外,似乎没有什么好办法了。最后的反过来想的思路,实际上也可以,但是列出来的方程,本质上跟价值法是一样的,而且并没有降低复杂度。(读者如果有好的思路,不妨留言提出。)
转载到请包括本文地址:https://kexue.fm/archives/3495
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Oct. 28, 2015). 《朋友们,来瓶汽水吧!有趣的换汽水问题 》[Blog post]. Retrieved from https://kexue.fm/archives/3495
@online{kexuefm-3495,
title={朋友们,来瓶汽水吧!有趣的换汽水问题},
author={苏剑林},
year={2015},
month={Oct},
url={\url{https://kexue.fm/archives/3495}},
}
November 13th, 2015
终于更了
哈哈,我当初也做错了,挺有趣
March 31st, 2016
恰好前段时间也研究了这个问题,方法远不及站主方便,我通过将汽水,瓶盖,瓶子分写成类似于幂指的形式,利用等价性来进行代数加减也能快速得到从1到10的结果,然后考虑了一下利用此结果可能唯一方便的地方就是在列表后方便将几百元理解成数个10元和几个1元的连加结果,算起来也很快,这个方法可以推广到站长的列方程的方法。
嗯嗯,殊途同归。欢迎在bbs.spaces.ac.cn更详细介绍你的方法。