鹏程杯经典逻辑真题:疯狗问题

四季读书网 1 0
鹏程杯经典逻辑真题:疯狗问题

这是五年级鹏程杯的真题,原题如下:

    一个村子有50 户人家,每户养 1 条狗,村子里一定存在疯狗。规则如下:1、每个人只能观察其余 49 条狗,绝对看不到自己家的狗;2、观察结果严禁互相交流、不能提醒别人;3、所有人绝顶聪明、严格守规,一旦百分百推理出自家狗是疯狗,必须在当天晚上开枪打死自家的狗;已知:第一天晚上无枪声,第二天晚上依旧无枪声,第三天晚上响起枪声。请问:村里一共有几只疯狗?
  1. 推理过程:

步骤 1:假设只有 1 只疯狗(N=1)

疯狗主人观察另外 49 条狗,发现全部正常。结合 “村里必有疯狗” 的前提,主人第一天就能确定:自家狗一定是疯狗,第一天必然枪响。题目第一天无枪声,直接证明:疯狗数量>1

步骤 2:假设有 2 只疯狗(N=2)

两只疯狗的主人,各自外出都只能看到1 只疯狗。他们都会心里推理:如果全村只有 1 只疯狗,那对方第一天一定会开枪。等到第一天结束,没有枪声,两人立刻明白:疯狗不止 1 只,自己看到的那只之外,自家的狗必然也是疯狗。按照规则,两人会在第二天晚上同时开枪。题目第二天依旧没有枪声,证明:疯狗数量>2

步骤 3:假设有 3 只疯狗(N=3)

三位疯狗主人,每人外出都只能看见2 只疯狗。每个人都会预判:如果只有 2 只疯狗,那两个疯狗主人第二天一定会开枪。等到第二天全程安静无枪响,三人瞬间推理出:疯狗不止 2 只,自己家的狗就是第三只疯狗,于是第三天一起开枪,完全吻合题干条件。

结论定理:有N只疯狗,枪声会在N响起

最终答案:村子里一共有 3 只疯狗。

变式 1:第一天枪响 → 1 只疯狗;第二天枪响 → 2 只;第n天枪响,就是n只疯狗;

变式 2:人数可以改成 10 户、20 户,总数不影响逻辑,只看枪响的天数;

这个和前面讲的递推的思考方式是一样的,逐步递推,总结规律,根据规律得出结论。
超常(数学)思维中的编程
超常(数学)思维中的编程逻辑
递推算法
___________________________________
思维共性,既是编程,又是数学游戏

‌抽象能力‌:将现实问题转化为‌数学模型‌,再用代码具象化 。

‌逻辑推理‌:编程中的条件判断、循环结构与数学中的‌演绎推理‌、‌归纳法‌高度一致 。

‌精确性‌:两者均要求严密的逻辑闭环,任何细微的逻辑漏洞都会导致系统失效或证明错误 

抱歉,评论功能暂时关闭!