握手问题为什么要除以 2?单循环和双循环的场次算法一次讲清
孩子把作业本推过来,题目是「8 个人互相握手,一共握多少次」,他写的是 56。你说错了,是 28。他问为什么,你张嘴就是「因为要除以 2」。他再问一句「为什么要除以 2」,你多半就卡住了。
**除以 2 不是哪条公式规定的,而是因为一次握手有两只手,被握手的两个人各自记了一笔,所以 56 这个数里,每一次握手都躺着两遍。**把这句话讲透,握手问题、比赛场次、点连线、互送贺卡这一整类题就通了;讲不透,孩子就只能靠「看到握手就除以 2」这种条件反射,遇到双循环赛立刻翻车。
这类题在多数教材里放在三四年级前后的综合应用或思维拓展部分,到了中学学计数与概率、用列表法和树状图把结果一个个数出来时,同一个坑还会再踩一次,不同教材版本进度不同,以孩子课本为准。
一、先用小人数,把「数了两遍」亲眼看见
不要一上来讲公式。人数少的时候,直接数得清,孩子看见的才信。
**3 个人的情况。**假设是甲、乙、丙。把所有握手一对一对写出来:甲乙、甲丙、乙丙。数一数,3 次,没有别的了。注意甲乙和乙甲是同一次握手,不能写两遍。
再换个数法:甲要和另外 2 个人握手,乙要和另外 2 个人握手,丙也要和另外 2 个人握手,一共 3×2=6。可实际只有 3 次。6 正好是 3 的两倍。
**4 个人的情况。**甲、乙、丙、丁,一对一对写:甲乙、甲丙、甲丁、乙丙、乙丁、丙丁,一共 6 次。换个数法:每人各握 3 次,4×3=12,12 是 6 的两倍。
到这里可以停下来问孩子一句:为什么每次都刚好是两倍?让他自己指着「甲乙」那一次说出来——甲那边记了一次「我和乙握了」,乙那边记了一次「我和甲握了」,同一次握手,两个人各报了一遍。这就是除以 2 的全部理由。
我带孩子做这段的时候喜欢加个动作:让他和你握一次手,然后问「刚才发生了几次握手」。他说 1 次。你说:可我要是报数,我报 1,你也报 1,加起来是 2。他就笑了,这个 2 是怎么冒出来的,他心里有画面了。
二、公式是怎么长出来的:n×(n-1)÷2
有了上面的经验,公式就不是背的,是推的。
假设一共有 n 个人。每个人要和除自己以外的所有人握一次手,也就是每人握 n-1 次。n 个人各自报数,总数是 n×(n-1)。但这个总数里每次握手都被报了两遍,所以真实次数是:
握手次数 = n×(n-1)÷2
拿前面验过的数回代一遍:n=3 时,3×2÷2=6÷2=3,对上了;n=4 时,4×3÷2=12÷2=6,也对上了。公式和列举结果一致,孩子才肯用它。
回到 8 个人的那道题,完整算给你看:
- 第一步,每人要握几次:8-1=7 次。(不是 8 次,自己不和自己握手,这一步孩子最容易写成 8。)
- 第二步,8 个人各报各的:8×7=56。
- 第三步,每次握手被报了两遍,去掉重复:56÷2=28。
所以答案是 28 次。孩子原来写的 56,不是瞎写,他其实做对了前两步,只是不知道第三步为什么存在。你要肯定他这一点,再补第三步,比直接说「错了」有用得多。
**再往回验一次:**如果真的是 28 次握手,每次握手涉及 2 个人,那么「有人参与握手」的人次是 28×2=56 人次;56 人次分给 8 个人,每人 56÷8=7 次,正好等于 8-1。前后对得上,这道题就踏实了。
同一个式子还能反过来用。比如:一次聚会上大家两两握了一次手,一共握了 45 次,来了多少人?
- 设人数为 n,那么 n×(n-1)÷2=45。
- 两边都乘 2:n×(n-1)=90。
- 找两个相邻的数,乘起来等于 90。试 8×9=72,小了;试 9×10=90,正好;试 10×11=110,大了。
- 所以 n=10,来了 10 个人。
验算一遍:10×9÷2=90÷2=45,对。这种「凑相邻两数」的试法比解方程直观,中低年级孩子也能上手,关键是让他有序地试,别乱猜。
三、单循环和双循环,差的到底是哪一步
比赛场次和握手是同一个模型,只是把「握一次手」换成「打一场球」。
**单循环:**每两支队伍之间只打一场。这时候一场球和一次握手完全一样,会被两支队各记一笔,所以要除以 2。
单循环场次 = n×(n-1)÷2
**双循环:**每两支队伍之间打两场,通常是主客场各一场——你在我家打一场,我去你家打一场。这两场是不同的两场比赛,不是重复记录。所以除以 2 之后要再乘 2,两步正好抵消:
双循环场次 = n×(n-1)÷2×2 = n×(n-1)
也可以直接这样想:每支队要和另外 n-1 支队各打 2 场,也就是每队打 2×(n-1) 场;n 支队共 n×2×(n-1) 场次记录,每场被两队各记一遍,再除以 2,结果还是 n×(n-1)。
拿 6 支球队完整算一遍:
- 单循环:每队打 6-1=5 场,6×5=30,30÷2=15 场。
- 双循环:每两队打 2 场,15×2=30 场;用公式核对,6×5=30,一致。
- 换个角度再核一次:双循环里每队要打 5×2=10 场,6 支队共 60 场次记录,60÷2=30 场。三种算法都是 30,可以收工了。
这里有个细节值得跟孩子点一句:单循环要除以 2,双循环不用除,区别不在于题目里有没有出现「循环」两个字,而在于两支队之间是打一场还是打两场。判断的落点永远是这个,不是关键词。
**顺手区分一下另一种赛制。**有的比赛是淘汰制,输一场就走人。n 支队伍要决出唯一的冠军,需要淘汰掉 n-1 支队,每场淘汰一支,所以一共 n-1 场。8 支队淘汰赛只需要 7 场,而 8 支队单循环要 28 场,差得很远。孩子如果分不清,多半是没读清题目里那句「每两队都要赛一场」还是「输一场就淘汰」。
**再看一道混着分组的:**12 支队伍分成 2 组,每组 6 队,先在组内进行单循环。一共要打多少场?
- 每组:6×5÷2=30÷2=15 场。
- 两个组:15×2=30 场。
注意不能拿 12 直接套公式。12×11÷2=66,那是所有队互相都打的场次,可题目说了只在组内打,跨组的那些比赛并不存在。先看清谁和谁真的会碰面,再套公式,这是这类题的命门。
顺带算个实用的:如果这 30 场比赛每天安排 5 场,需要 30÷5=6 天。孩子做到这一步往往还挺有成就感,因为数学一下子变成了排日程表。
四、孩子最容易错在哪,家长最容易误解什么
**错法一:每人握 n 次,写成 8×8=64。**根源是没意识到「自己不能和自己握手」。这在孩子的经验里不是常识,因为他平时数班里有几个人,是把自己一起数进去的。破法很简单:让他站起来,指着自己问「我要和我自己握手吗」,他一笑就记住了。
**错法二:算出 56 就交卷,忘了除以 2。**根源不是粗心,是他压根不知道第三步存在——在他的理解里,8×7 已经把「每人握 7 次」老老实实算完了,任务结束。所以光喊「记得除以 2」没用,得让他重新数一遍 3 个人的情况,亲眼看见 6 和 3 的差距是从哪来的。看见过一次,比抄十遍公式管用。
**错法三:双循环也除以 2。**根源是把除以 2 当成了这类题的固定动作。孩子形成的规则是「看到握手/比赛就除以 2」,而不是「重复计数才除以 2」。纠正的办法是逼他每次都回答一句话:这里有没有重复?重复了几遍?回答不上来就不许动笔。
**错法四:题目变个说法就不会了。**比如「每两人互送一张贺卡,8 个人一共送多少张」,答案是 8×7=56 张,不除以 2。因为甲送给乙和乙送给甲是两张不同的卡,本来就不重复。同理,「8 个人互相打一次电话」要看题目说的是通话还是各打各的。**判断标准只有一个:甲对乙和乙对甲,算不算同一件事。**算,就除以 2;不算,就不除。
**家长最容易误解的一点:**以为孩子是粗心。你看着他公式会背、乘法算对,只差最后一步,就判定成「不认真」。其实他缺的是「重复计数」这个概念本身,这跟认真不认真没关系。把它当成粗心来治,就会变成反复催促和情绪对抗,孩子越来越怕这类题。
**第二个常见误解:**觉得画图是笨办法,早点用公式才叫聪明。恰恰相反,n 比较小的时候老老实实把点连起来数一遍,是这类题最靠谱的自检手段。上了中学用树状图、列表法数结果,会画图的孩子照样比只会套公式的稳。想让孩子把画图变成习惯,可以配合应用题画图法一起练。
**第三个:**担心孩子算错就急着报奥数班。这类题真正的难点在读题和建模,不在计算。真要补,先补读题——数学阅读理解里那些划关键词的做法,对付「每两队之间赛一场」这种句子比刷题有用。
五、在家怎么练,十分钟一轮
第一天,只做「看见重复」这一件事,大约 10 分钟。
找 4 个人(家里人不够就用玩偶、扑克牌代替),让孩子把所有握手组合写在纸上,写完数出 6。然后让他算 4×3=12,问他一句:12 和 6 差在哪,多出来的 6 次是什么?这一问是全天的重点,他答出来「同一次被写了两遍」,今天就成了,不用再做题。
第二天,画点连线,5 分钟,3 道题。
在纸上点 5 个点,两两连线,让他先猜有几条,再动手连,最后用 5×4÷2=20÷2=10 核对。然后换 6 个点(6×5÷2=15)、7 个点(7×6÷2=21)。每次都是先猜、再画、后验算,三步不能省。猜错没关系,猜错反而记得牢。
第三天,做单双循环对比,10 分钟,2 道题。
同一批队伍,让他分别算单循环和双循环。比如 5 支队:单循环 5×4÷2=10 场,双循环 5×4=20 场。算完追问一句:为什么这次不用除以 2?他要能说出「主客场是两场不同的比赛」。说不出来,就退回第一天那个 4 人游戏重做一遍,别硬往前推。让孩子开口讲理由这件事,可以参考让孩子说出解题思路里的问法。
第四天,做倒推题,10 分钟,2 道题。
给他「一共握了 15 次,有多少人」这种题。步骤是:15×2=30,找相邻两数乘积等于 30,5×6=30,所以 6 个人。验算 6×5÷2=15,对上。再来一道「一共 21 场单循环比赛,有多少队」:21×2=42,6×7=42,所以 7 队;验算 7×6÷2=21,对上。
**关于计算这一关。**这类题的算式本身不难,但 n×(n-1) 经常是两位数乘一位数,再除以 2,孩子如果乘除不熟,思路对了也会算错,然后被误判成「不会做」。真发现是计算拖后腿,就单独补计算,别混在一起补。可以用口算练习卷生成器自己出一份:题量和最大数值自己选,运算类型只勾乘法和除法,打印出来每天 20 题,两分钟一轮,几天就顺了。想系统一点,可以对照乘法计算技巧里的拆分方法一起练。
**问孩子的时候,少问「对不对」,多问「你是怎么数的」。**前者他只会点头,后者才逼他把过程讲出来。讲得出来的题,才是真会了。
最后
握手问题真正教给孩子的,不是那个除以 2,而是一种警觉:**我这样数,会不会把同一样东西数了两遍?**这个警觉后面会一直用得上——数线段条数、数长方形个数、算搭配方案,动笔之前都得先问这一句。问完的答案不一定都是「要除以 2」:一条直线上 6 个点数线段,是 6×5÷2=15,要除;3 件上衣配 2 条裤子,6 种搭配就是 6 种,一件都不重复,不用除。要紧的不是除不除,是每次都先问一句。所以这道题值得花两三天慢慢磨,磨透了是一劳永逸的。
如果孩子现在还是列举一次、忘记一次,别急着上强度。这类题吃的是「亲眼看见重复」的经验,经验攒够了会突然通,攒不够怎么讲都是隔靴搔痒。他现在能老老实实把 4 个人的握手一对一对写全,就已经站在通的门口了。什么时候通,等一等也无妨。