年龄推断

来自计算思维百科
跳转至: 导航搜索
年龄推断.png

人口普查员问女人:“你有多少个孩子,他们分别是多少岁?”

女人回答:“我有三个孩子,他们的岁数相乘等于36,岁数相加等于13。”

普查员想了想,又问女人说:“我还需要多少材料?”

女人回答:“我现在很忙,我最大的孩子正在楼上睡觉。”

普查员说:“谢谢,我已经知道了。”

你能帮普查员推理一下,这个女人的三个孩子各多少岁了吗?

解决方案-贪心法

我们通过普查员与女人不断深入的对话,可以一步一步地推断出答案。普查员一共得到了三个条件:

(1). 岁数相乘=36

    因为36=1×2×2×3×3,所以所有可能为:

    1、1、36:和等于38;

    1、2、18:和等于21;

    1、3、12:和等于16;

    1、4、9:和等于14;

    1、6、6:和等于13;

    2、2、9:和等于13;

    2、3、6:和等于11;

    3、3、4:和等于10;

(2). 岁数相加等于13

   根据(1)得到的结果集,其中(1,6,6)和(2,2,9)符合条件;

(3). 最大的孩子在睡觉,说明最大的孩子只有一个;

   也就是说应该是(2,2,9),即两个小孩都是两岁,一个最大的孩子已经9岁了。

运用的计算思维

根据题目描述,不断地挖掘已知条件,不断地缩小符合条件的结果集,步步逼近,每次都筛选出离结果最近的集合,最终找到符合条件的答案,运用了“优化”的计算思维。

参考文献

https://www.nowcoder.com/questionTerminal/adf33821451141f6a0f4e6077366f790