【Scratch数学编程】爱喝酒的小猫

一个经典的智力问题:有一只小猫爱喝酒,一天,听说酒店买酒有优惠:一瓶酒两元钱。2个空酒瓶或4个瓶盖可换1瓶啤酒。小猫一次可以喝10瓶酒,心想今天拿10元钱去喝酒,肯定不会醉。小猫按照酒店的优惠信息,花了10元钱,把能兑的酒也都喝了。请问小猫喝醉了没?他到底一共喝了多少酒?

好吧,一些朋友可能已经算出来了。那么我增加难度:

过了一年,小猫苦练酒量,一次可以喝10000瓶酒了。这次,他拿了10000元去酒吧,结果酒吧又是相同的促销活动。于是,小猫按照同样的优惠信息,拿了10000元去喝酒,且全部喝完了。请问小猫喝醉了没?他到底一共喝了多少酒?

要知道,这个时候,如果不借助公式或工具,再计算是相当困难的。

我们回到10元钱喝酒的问题。每获得一瓶酒,可以有三种方式:1.花2块钱买;2. 用2酒瓶换;3. 用4瓶盖换

将每获得一瓶酒并喝掉它视为一个步骤,整个消费过程由有限有序步骤组成,每一步有三种执行方式。考察任一步骤前后“酒瓶和瓶盖的总个数(记为N)”的变化。

很容易得到:若该步采取方式1,则N+2;若该步采取方式2,则N不变;若该步采取方式3,则N-2。

考虑初态(即第一步之前):N=0。因此,每一步之后N总是偶数。

考虑末态(即最后一步之后)。末态当然是消费者钱和酒瓶和瓶盖都不够,再也搞不到酒的时候呗。

钱不能增加,所以末态金钱0;最后一步喝了一瓶酒,所以末态至少有1个瓶盖和1个酒瓶。

不仅如此,由于每一步都喝了一瓶酒,所以每一步之后都至少有1瓶盖和1酒瓶。

因此末态时N≥2且N为偶数。

1. N≥6时,瓶盖数≥4和酒瓶数≥2必有至少一个成立,这显然不是末态。
2. N=2时,瓶盖数=酒瓶数=1。若最后一步采用方式1,那之前N=0(总步骤数显然大于1),矛盾;若最后一步采用方式2,则之前瓶盖数为0,矛盾;若最后一步采用方式3,则之前酒瓶数为0,矛盾。总而言之N=2不可能是末态。

于是末态的时候只能有N=4;符合末态条件的N=4只有1酒瓶+3瓶盖。附:金钱0。


接下来有了理论支持就可以暴力求解最大值了。设一瓶酒里的酒价值x,酒瓶价值y,瓶盖价值z,随手列个三元一次方程组解得:

x=1/2,y=1,z=1/2 (单位元)

于是:初态猫有10元,末态猫有2.5元。整个消费过程是等价交换,消失的那些钱去哪儿了?变成酒进猫肚儿了呗。

7.5÷1/2=15。

当然,使用这个方式倒是可以计算出10000元喝多少酒。

但是,我们用工具就简单多了。

【Scratch数学编程】爱喝酒的小猫-少儿编程网

例如,如果我们用excel,可以这样:

【Scratch数学编程】爱喝酒的小猫-少儿编程网

那么,我们会Scratch编程的朋友,能不能想到如何使用Scratch来计算呢?这里给出了答案:

作品链接: https://pan.baidu.com/s/1hrDlFl6 密码: fpd9

【Scratch数学编程】爱喝酒的小猫-少儿编程网

事实上,我们用Scratch还可以解决很多数学智力问题。所以Scratch会是我们的好朋友。你看,用这个智力题做了一个简单的故事,趣味性更强了。

*文章为作者独立观点,不代表少儿编程网立场
发表评论

3 条评论
相关文章
适合孩子学编程的教育游戏APP有哪些?
适合孩子学编程的教育游戏APP有哪些?
为什么大多数学编程的孩子表达能力高于同龄人?
为什么大多数学编程的孩子表达能力高于…
编程少年丨崔少天:幼儿园里学编程的6岁男孩
编程少年丨崔少天:幼儿园里学编程的6岁…
如果孩子系统学完Scratch、Python、NOIP,编程能力可以达到什么水平?
如果孩子系统学完Scratch、Python、NOIP…
编程少年丨夏启航:10岁男孩的“慢”哲学
编程少年丨夏启航:10岁男孩的“慢”哲学
编程少年丨林于森:一个7岁男孩的编程奇缘
编程少年丨林于森:一个7岁男孩的编程奇缘
Scratch是由麻省理工学院(MIT)设计开发的一款面向少年的简易编程工具,是适合于全世界儿童学习编程和交流的工具和平台