分类: 数学

  • 鸡兔同笼的五种”打开方式”——从掰手指到方程的一路升级

    鸡兔同笼的五种”打开方式”——从掰手指到方程的一路升级

    一、这道题,”难”在哪里?

    鸡兔同笼 → 场景铺陈

    鸡兔同笼是一道很老的题,出自中国古代的《孙子算经》。原题是:笼子里有鸡和兔,一共 35 个头,94 只脚。问鸡几只?兔几只?

    难在「混」 → 问题界定

    这道题之所以难,是因为鸡和兔的脚数不一样——一个 2 只脚,一个 4 只脚。如果所有动物脚数都相同,只要用总脚数除以每只脚数,题目就做完了。但现实是”混在一起”的,你得想办法把它们”拆开”。所有解法的起点,都是如何处理这种”混在一起的不同”。

    二、方法一:列表法——先试试看,再找规律

    列表操作 → 方法展开

    这是最简单的方法:你列一张表格,先从”鸡 35 只、兔 0 只”开始,算出总脚数;然后把鸡减少 1 只、兔增加 1 只,再算总脚数……一直算到总脚数等于 94 为止。

    观察规律 → 思维升华

    这个方法看起来”笨”,但其实是数学思维的第一个环节——观察。在一次次试算中,孩子会发现:鸡少 1 只、兔多 1 只,总脚数就多 2 只。这个规律一旦被发现,剩下的计算就快了。丘维声在《数学的思维方式与创新》中说,数学思维的第一个环节就是观察——先收集足够多的数据,再看穿数据背后的模式。列表法培养的不是计算速度,而是”动手探索、发现规律”的习惯。

    三、方法二:假设法——把”不同”变成”相同”

    核心思路 → 思路点明

    这是鸡兔同笼最经典的方法。思路只有一句话:既然鸡和兔的脚数不一样,那我们就”假设”它们一样。把复杂问题简化成已经会做的问题——这是波利亚《怎样解题》中反复强调的策略。

    兔子站起来 → 举例展开

    怎么假设?让所有兔子”站起来”,收起 2 只脚。这样每只动物都只有 2 只脚了。35 个头 × 2 只脚 = 70 只脚,比题目给的 94 只少了 24 只。少的这 24 只脚哪去了?被兔子收起来了——每只兔子收 2 只,所以兔子有 24 ÷ 2 = 12 只。鸡就是 35 − 12 = 23 只。

    简化策略 → 思维升华

    你也可以反过来想:让所有鸡”长出翅膀”,每只变 4 只脚。35 × 4 = 140,比 94 多了 46 只,多出来的都是鸡原本没有的脚——每只鸡多 2 只,所以鸡有 46 ÷ 2 = 23 只。假设法的精髓不在于具体公式,而在于一种通用思维——如果不会做原题,先做一个”变简单”的版本,从简化版中找到规律,再回到原题。

    四、方法三:金鸡独立和吹哨——用想象力”减掉”不需要的东西

    想象力降维 → 思路点明

    假设法是”把不同变相同”,但还有更夸张的招数——直接让一种动物”消失”,把问题降维成只含一种动物的简单计算。

    金鸡独立 → 举例展开

    “金鸡独立法”:让所有动物只用一半的脚站着。鸡单脚,兔子两后脚。总脚数变成 94 ÷ 2 = 47。此时每只鸡 1 个头对应 1 只脚,但兔子 1 个头却有 2 只脚——”多余”的脚数 47 − 35 = 12 全是兔子的。类似地,”吹哨法”连吹两声哨,每声让所有动物抬一只脚,抬完两次后鸡已经没有脚了,剩下的 94 − 70 = 24 只脚全是兔子的,每只兔子还有 2 只脚,所以兔子 24 ÷ 2 = 12 只。

    降维思想 → 思维升华

    这两种方法的共同思路是:通过变形消去一种动物,把问题降维成只需考虑兔子的简单计算。数学中很多高级技巧——消元法、降维、变量替换——其实都有这种”让一部分先消失”的影子。

    五、方法四:面积法——把算式画成图

    面积操作 → 方法展开

    前面三种方法都是”算”,第四种方法教你”画”。画一个大长方形:长 35(动物总数),宽 4(兔子的脚数),总面积 35 × 4 = 140——这恰好是”假设全是兔子”的总脚数。去掉实际脚数 94,多出来的面积 140 − 94 = 46,这片区域的宽是 2(每只鸡比兔子少的脚数),所以长 = 46 ÷ 2 = 23——就是鸡的数量。

    数形结合 → 思维升华

    把数字变成图形,把乘法变成长方形面积——这是数形结合思想的启蒙。看似多绕了一步,但当你遇到更复杂的问题(行程、浓度、工程),这种”用图形表达数量关系”的能力会成为你最强大的武器。阿尔伯特·卢瑟福在《培养数学思维》中说得很好:数学高手不是算得快的人,而是能”看见”关系的人。

    六、方法五:方程法——用字母代替”不知道”

    方程操作 → 方法展开

    如果你已经学过了方程,鸡兔同笼就变成了一道送分题:设鸡有 x 只,兔有 y 只,列出方程组 x + y = 35 和 2x + 4y = 94,解出 x = 23,y = 12。十几秒搞定。

    抽象力量 → 思维升华

    但方程法的价值不止于”快”。它的本质是抽象——把”鸡””兔””脚”这些具体事物,换成 x、y 这样的符号。一旦完成了抽象,这道题就从”鸡兔同笼”变成了一道纯粹的”二元一次方程组”,所有类似的问题——鹤龟同池、摩托车和汽车轮子数——都可以用同一个套路解决。丘维声强调的五环节”观察→抽象→探索→猜测→论证”中,抽象正是从”这一道题”跃升到”这一类题”的关键一步。

    七、这些方法教给我们什么?

    五种方法 → 归纳总结

    回头看这五种方法,它们不是并列的”技巧清单”,而是一条逐步升级的思维路径:先观察找规律,再简化假设变容易,然后用想象力变形消去,接下来用图形表达关系,最后用符号抽象彻底一般化。

    通用能力 → 递进展开

    每一种方法都不只是”算出答案”的工具,更是你大脑里某种通用思维的训练场。列表法训练观察力,假设法训练简化能力,图形法训练空间想象,方程法训练抽象建模——这些能力在数学之外,同样是你理解这个世界的底层工具。

    应用到生活 → 号召收束

    下一次你遇到”看上去很难”的问题,不妨先问自己:我能不能先列出几个数看看?能不能假设一个简单版本?能不能画个图?能不能用字母代替不知道的东西?——你会发现,鸡兔同笼教你的,远不止”鸡几只、兔几只”。

  • 四位数学家,两两合作过——一道容斥原理入门题

    四位数学家,两两合作过——一道容斥原理入门题

    一、题目重述

    题目重述 → 场景铺陈

    1992 位科学家坐在一个大礼堂里。题目的条件很特别:每个人至少与 1329 位其他科学家合作过。我们要证明的是:在这样一张”合作网络”中,一定存在 4 位科学家,他们两两之间都合作过

    经典定位 → 工具点明

    这听上去像是一道”找朋友”的游戏题。

    但数学家处理这类问题有一个统一思路:把”人与人之间的关系”翻译成”集合与集合之间的关系”,再用集合的运算把”故事”算出来。完成这一步,容斥原理就登场了。

    二、把”合作”翻译成”集合”

    语言转换 → 概念界定

    在集合语言里,每个科学家都有一个”合作圈”——也就是和他合作过的所有科学家的集合。

    符号定义 → 递进展开

    具体地:与科学家 A 合作过的所有人放在一起,记作 Ã(A 上面加一个波浪线)。题设告诉我们 |Ã| ≥ 1329。与科学家 B 合作过的所有人,记作 ,同样有 |B̃| ≥ 1329

    细节补全 → 目标聚焦

    这里有一个细节需要记住:科学家不会和自己合作。所以 A 不在 Ã 中,B 不在 中。但是既然 A 与 B 合作过,那 A 就在 中,B 就在 Ã 中——这一点后面会用到。

    题目要我们找的”4 位两两合作的数学家”,用集合语言重新表达就是:找到 A、B、C、D 四个人,使得每一对都满足”互相在对方的合作圈里”。换句话说,A、B、C、D 中的任意两个,他们的合作圈都有交集。

    三、思维路径——分步”造桥”

    全局规划 → 分步规划

    要把 4 人小圈子找出来,最自然的策略是”先造两座桥,再造第三座”。

    阶段拆解 → 递进展开

    第一步:在 A 的合作圈里挑一个人 B(题设保证这一定办得到,因为 A 至少有 1329 个合作者)

    第二步:找一位科学家 C,使得 C 同时在 A 和 B 的合作圈里——也就是 C 是连接 A 与 B 的”第一座桥”。

    第三步:再找一位科学家 D,使得 D 同时与 A、B、C 三人合作——D 是”第二座桥”。

    逻辑闭环 → 目标聚焦

    只要这三步都成功,A、B、C、D 自然两两合作:

    A 与 B 在第一步就合作了;

    A 与 C、B 与 C 在第二步连接了;

    A 与 D、B 与 D、C 与 D 在第三步连接了。

    所以整个证明的核心命题就变成了两件事:

    1)Ã ∩ B̃ 里有至少一个人(这样 C 才存在);

    2)Ã ∩ B̃ ∩ C̃ 里有至少一个人(这样 D 才存在)。

    四、第一步——找”桥”C

    问题转化 → 工具引入

    要判断 Ã ∩ B̃ 是不是空的,最直接的办法就是估算它的大小。这里就要用到两集合容斥原理

    公式解释 → 概念界定

    这个公式的直觉是这样的:把 Ã 的人和 的人直接加起来,交集里的人(既属于 A 又属于 B 的)就被多算了一次,所以要减掉一次才得到正确的交集大小。

    数据代入 → 数值估算

    现在代入数据:

    |Ã| ≥ 1329(A 的合作者至少有 1329 位);

    |B̃| ≥ 1329(B 的合作者至少有 1329 位);

    |Ã ∪ B̃| ≤ 1992(合作圈里的所有人加起来也不可能超过礼堂里 1992 人的总数)。

    于是:

    |Ã ∩ B̃| ≥ 1329 + 1329 – 1992 = 666

    也就是说,至少有 666 个人既与 A 合作,又与 B 合作。从中任选一位,就是我们要的 C。

    五、第二步——找”桥”D,与命题成立

    问题推进 → 阶段聚焦

    接下来要找 D。问题转化成:Ã ∩ B̃ 这个集合(至少有 666 人)和 (至少有 1329 人)的交集里,是不是至少还有一个人?

    工具复用 → 公式引入

    Ã ∩ B̃ 看作一个”放大的集合”,再用一次两集合容斥:

    数据代入 → 数值计算

    代入数据:|Ã ∩ B̃| ≥ 666(这是第一步的成果);|C̃| ≥ 1329;|(Ã ∩ B̃) ∪ C̃| ≤ 1992(同样不会超过总人数)。于是:

    |(Ã ∩ B̃) ∩ C̃| ≥ 666 + 1329 – 1992 = 3 ≥ 1

    也就是说,至少有 3 个人(含 D 在内)同时与 A、B、C 合作过——这意味着 D 一定存在。

    命题收束 → 综合收尾

    回看一下整个过程:

    A 与 B 合作(A 在 B 的合作圈里);

    A 与 C 合作(C ∈ Ã);

    A 与 D 合作(D ∈ Ã ∩ B̃ ∩ C̃);

    B 与 C、B 与 D、C 与 D 同样成立。六对合作关系全部成立,A、B、C、D 确实构成一个”两两合作”的 4 人小圈子。命题得证。

    六、方法论总结

    方法论三点 → 归纳升华

    这道题虽小,但藏着三个值得记住的方法论要点。

    翻译与分步 → 分点展开

    第一,把日常叙述翻译成集合语言,是这类题的第一关。题目原话的”说明”里就特别强调:”把一个普通的叙述性问题转化为集合的语言描述的问题,通常为解题的关键之处”。数学家处理”关系”问题的第一步,永远是问”我能不能把这件事翻译成集合的语言”。

    第二,把复杂问题拆成可以分步处理的小问题。我们没有一上来就用”四集合容斥”,而是把它拆成”先找 C、再找 D”两个两步的”两集合容斥”。这正是分治思想在组合数学里的体现:能分步解决的事情,就不要硬刚一次。

    缓冲量与容斥 → 关键聚焦

    第三,1329 这个数字不是随便给的。1329 + 1329 – 1992 = 666,这个 666 既足够大到能保证下一步能继续(666 + 1329 – 1992 = 3 > 0),又留下了一个清晰的”缓冲量”。

    容斥原理的精髓,就是用”加 + 减”的算式,把”交集的下界”算出来,从而证明”交集非空”。这是组合数学里最常用的”算一算”技巧。

    方法收束 → 号召收束

    容量与圈子的关系,本质上是”很多人合作过,那么朋友的朋友的朋友……总能找到”。理解了这一点,容斥原理就不再是抽象的公式,而是一把精准的尺子——它把”看上去是故事”的问题,量出了”必然成立”的答案。