荡杯问客——津吏的一道分数题
妇人河上荡杯,津吏问:「杯何以多?」妇人曰:「家有客。」津吏曰:「客几何?」妇人曰:「二人共饭,三人共羹,四人共肉,凡用杯六十五。」问客几何?答曰六十人。这是《孙子算经》里最有名的一道题——它不用方程,只用一句「二人共饭、三人共羹、四人共肉」,就把一个分数加法藏进了渡口的对话里。
原典
今有妇人河上荡桮,津吏问曰:「桮何以多?」妇人曰:「家有客。」津吏曰:「客几何?」妇人曰:「二人共饭,三人共羹,四人共肉,凡用桮六十五。不知客几何?」
答曰:六十人。
白话翻译
有位妇人在河边洗杯碗。管渡口的官吏问她:「杯子怎么这么多?」妇人说:「家里来了客人。」官吏问:「多少客人?」妇人说:「两个人合用一个饭碗,三个人合用一个羹杯,四个人合用一个肉杯,一共用了六十五个杯碗。请问来了多少客人?」
答案是:六十人。
这段对话是《孙子算经》里最有现场感的一段。 渡口官吏的问话、妇人的回答,都是日常口语;而就在这段家常话里,埋着一道需要通分才能解的分数题。官吏问完就算出来了——河津小吏的算术,可见一斑。
关于「桮」字:古书中「桮」即「杯」,指碗、杯一类的器皿。妇人说的「二人共饭」,是说两个人共用一只饭碗。
示意图
古人的算法
设客数为 。 三人规矩如下:
三样加起来是 65:
关键一步是通分。 2、3、4 的最小公倍数是 12,于是
三项相加:
两边同乘 12:
验证一遍:
合计 只,与题面完全一致,客数为 60 人。
这道题的巧妙在于「分而不整」。 客数必须是 2、3、4 的公倍数,才能让每类器皿都是整数只。60 是 12 的倍数,正好满足;而 这个系数意味着「客数还要被 13 除得尽」——,数字凑得恰到好处。古人编题时显然反推过:先定 60 位客人,再算出 65 只杯碗。
现代数学视角
用今天的语言,这是一道分式方程:
括号里是调和意味很浓的三个分数,和为 。这题的价值不仅在解方程,更在它点出了一个常见误区:「平均每类器皿多少只」不等于「器皿总数除以 3」。 若直接算 ,毫无意义。真正的做法是先理清每类与客数的关系。
换个思路,还能发现一个含蓄的结构:设每只饭碗供 2 人、每只羹杯供 3 人、每只肉杯供 4 人,那么 65 只器皿「供养」的总人·次是 ,而每个人恰好用到三类各一次,所以 。两种算法殊途同归,后者更像「加权平均」——每类器皿的供应能力不同,加权求和才是总供给。
这题的实用性很强。 今天组织会议、安排餐饮、分配器材,都要先算「多少人共用一份资源」。食堂备餐按人均份量、会议室按人均面积、共享单车按人均投车比,本质都是这道题。「二人共饭」是古代的餐桌配比,今天叫「供餐比」。
高中课本关联
分式方程: 是最标准的分式方程,去分母(乘 12)后化为整式方程。本题适合作为分式方程的第一道例题——情境具体、答案整洁、还可验算。
最小公倍数与通分:2、3、4 的最小公倍数 12 是通分的钥匙。让学生体会「为什么要找最小公倍数」而不是随便乘。
函数与比例:器皿数随客数线性增长, 是一条斜率为 的直线。给学生几个客数值让他们列成表格,再画成图,斜率的含义(「每来一位客人要多用 只杯碗」)立刻具体。
数学建模:从一段文言对话中提取变量关系,是最早的建模训练。让学生先把题目改写成数学语言,再列方程——这一步往往是难点。
思考与拓展
-
算一算:按上述办法列方程、通分、解出 ,再把 60 代回原题三类器皿逐一验算。
-
改数据:若共用规则改为「二人共饭,三人共羹,五人共肉」,共用 79 只器皿,问客多少?(提示:,所以 ——注意这次是否整除。)
-
反问题:若已知客人为 84 人,规矩仍是二、三、四人共用,问共用多少只器皿?(提示:。)
-
缺一类:若只有饭碗和羹杯(没有肉杯),共用 50 只,问客多少?与有三类相比,解的结构有何不同?
-
生活建模:学校食堂有 180 个座位,每 3 人一桌供 3 菜 1 汤。问需要多少张餐桌、多少菜、多少汤?若来 200 人就餐,最少要加几张桌、加几菜几汤?仿照本题写一遍「今日版荡杯问客」。
一句话总结
「二人共饭,三人共羹,四人共肉」——一段渡口闲聊,藏着通分、比例与线性函数三层数学。