数字选择问题
笔算答案

2024年厦门市教育局、厦门市科协官方联合举办的小学生信息学竞赛初赛LOGO语言编程笔试试卷中求解的问题是:“甲、乙、丙、丁四名同学分别从数字1~9中选出两个数字,他们之间选择的数字不能有重复。要求甲选的两个数字之和必须是10;乙选择的两个数字之差必须是1;丙选择的两个数字之积是24;丁选择的两个数字之商要是3。这样,4个人选择了8个数字,问:最后剩下的数字是多少?”
这个问题在笔试竞赛中当然只能使用笔算来解决。类似这样的问题其实是高等数学中《离散数学》里的初级入门题目。其中包含着多个变化的数量之间的互相制约且互相支持的复杂关系。(注意!计算机试卷中的“趣味数学”题不仅仅有“离散数学”类型的,还有“数论”、等等其它类型的命题。海阔天高,随手抓来都是一大把,可入围的题目简直可以说是数以万计!考试检测的就是应试者的应变能力思维灵活度及敏锐度——这是一个优秀的编程者所必须拥有的基础能力。)
求解类似这样的问题应当从问题总体的最“薄弱”处入手。
在甲乙丙丁四个人的条件要求中,丙的条件限制得“最严”:
丙选择的两个数字之积是24。那么丙就只能选择3、8这两个数字。只剩下7个数字让甲乙丁来选择。
在这样的条件下丁的条件是剩余的三个人中限制得“最严”的:丁选择的两个数字之商要是3。丁只能选用6和2中两个数字了。
经过前两轮选择,只剩下1、4、5、7、9这么5个数字了。
现在要求“甲选的两个数字之和必须是10”,甲必须选择1和9。
由于“乙选择的两个数字之差必须是1”,乙的数字只能是4和5。
从题目条件的最薄弱处入手。逐层抽丝剥茧,我们得到的答案是
甲选1、9;
乙选4、5;
丙选3、8;
丁选6、2;
剩下的数字只能是7。
笔算推演的答案和LOGO编程输出的答案是一致的。
在所有类型的计算机编程语言的笔试卷中(LOGO语言、PASCAL语言、C语言、C++语言、PYTHON语言……)不约而同地都有这样的“趣味数学”题其原因是相同的。用笔算求解“趣味数学”题的思维过程的本底,其实就是编程求解这个逻辑问题的“算法”。如果你的思维深度有能力用笔算求解出某个复杂数学问题,那么换用计算机编程,也必然有相类似的编程“算法”。
现在你明白甲乙丙丁这4个人选择数字剩下的只能是7这个数字的原因了吧!
LOGO编程所能输出的动画令人目不暇接
加载中,请稍候......