首页 > > 新闻中心 > 文化 > 头条

寻味开封:宋朝的百鸡问题

2020-08-17 10:38 作者:李开周 来源:开封网-汴梁晚报

学过奥数的小朋友应该都见过这道题:

“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、雏各几何?”已知每只公鸡售价5钱,每只母鸡售价3钱,每3只小鸡售价1钱。现在拿出100钱,要买100只鸡,请问公鸡、母鸡、小鸡各买多少只?

此题叫做“百钱百鸡”,又叫“百鸡问题”,出自公元5世纪的中国数学文献《张丘建算经》,堪称全世界最著名的不定方程例题。

解这道题,可以设100钱买到的100只鸡里有公鸡x只、母鸡y只、小鸡z只,列出方程组,然后消元、化简得出x和y的数量关系,再把x的可能取值代进去,得到y的值,最后将x和y代入,得到z的值。

在这道题里, x的取值必然小于14,并且必须是4的倍数,所以x只能是4、8、12。将x值代入,得到y的值:18、11、4。再将x和y的值代入,得到z的值:78、81、84。

答案出来了,百钱买百鸡,其中公鸡4只,母鸡18只,小鸡78只;或者公鸡8只,母鸡11只,小鸡81只;又或者公鸡12只,母鸡4只,小鸡84只。

在中小学阶段,百鸡问题是非常经典的奥数题,出过许多变形,也有许多解法。刚才介绍的解法,主要利用整除的特性。还有一些解法,要用到余数的特性,甚至还有用奇数和偶数的末位特性来求解的。不管用哪种解法,归根结底都是要缩小未知数的取值范围,从看似无穷无尽的取值中找到合理的取值,将看似不可解的方程变成能解的方程。

继《张丘建算经》之后,南北朝数学家甄鸾提出了两道百鸡问题,题意相似,解法相同,仅仅是数据有变动。其中一道是:“今有鸡翁一只值五文,鸡母一只值四文,鸡儿一文得四只。今有钱一百文,买鸡大小一百只,问各几何?”公鸡每只5文,母鸡每只4文,小鸡每文钱买4只,今有百钱买百只鸡,求各鸡数量。

甄鸾提出的另一道题是:“今有鸡翁一只值四文,鸡母一只值三文,鸡儿三只值一文。有钱一百文,买鸡大小一百只,问各几何?”

金庸先生笔下有一位洪七公洪老帮主,武功奇高,嘴巴奇馋,超爱吃鸡。《射雕英雄传》第十二回,黄蓉在江边村里偷了一只鸡,宰杀干净,用泥糊严,生火烤熟,鸡肉白嫩,浓香扑鼻,正是这股浓香引来了洪老叫化。黄蓉与郭靖好客,将这只刚刚烤好的鸡让给洪七公,自己一口没尝。老叫化大喜,“风卷残云吃得干干净净,一面吃,一面不住赞美”。此后洪七公传授郭靖降龙十八掌,一半是因为郭靖忠厚老实,一半也是因为吃了郭、黄二人的鸡,不传几手功夫说不过去。

洪七公将降龙十八掌中的十五掌传给郭靖,总共用了一个多月。在那月余以内,黄蓉每天变着花样给洪七公烧菜,假定每天要用两三只鸡,公鸡、母鸡和小鸡均有,则月余共需百只左右。查宋朝鸡价,百钱买百只已不可能,千文买百只还差不多。我们给公鸡、母鸡、小鸡分别定价,可以设计一道以洪七公为主角的百鸡问题:

“北丐洪七公,丐帮之长,精于技击而贪于口腹,尤嗜鸡也,日食数鸡而不厌。某年月日,七公醉眠江畔,闻鸡司晨,流涎满地,急命女弟子名黄蓉者,掌中馈,主庖厨,携青蚨千文,赴草市购鸡百只。今知雄鸡一只五十文,雌鸡一只三十文,雏鸡一只六文,则百鸡之中,雄鸡、雌鸡、雏鸡各几何?”

公鸡每只50文,母鸡每只30文,小鸡每只6文。黄蓉拿1000文钱,买100只鸡,其中公鸡、母鸡与小鸡各买多少只呢?设公鸡x只,母鸡y只,小鸡z只,列出方程组,还是老办法:先消元,再化简,设定x的取值,得到y的值,将x、y代入,又得到z的值。

这道题共有两组解:

①x=2,y=13,z=85

②x=8,y=2,z=90

答:黄蓉千文买百鸡,其中公鸡两只,母鸡13只,小鸡85只;或公鸡8只,母鸡两只,小鸡90只。也就是说,黄蓉非要拿1000文钱买100只鸡的话,那她买到的鸡必有一大半是小鸡。

刚才这道题是我杜撰的,实际上,宋朝数学家在百鸡问题的基础上又设计了一些变题。

例如将买鸡变成买水果:“出钱一百买温柑、绿橘、扁橘共一百,只云温柑一枚七文,绿橘一枚三文,扁橘三枚一文,问各买几何?(南宋杨辉《续古摘奇算法》)”

或者将买鸡变成买酒:“醇酒每斗七贯,行酒每斗三贯,醨酒三斗直一贯,今支一十贯,买酒十斗,问各买几何?(同上)”

走出中国,放眼世界,在英国数学家阿尔昆(Alcuin,730年~804年)、印度数学家摩诃毗罗(Mahavira,生卒年未知,9世纪在世)、埃及数学家阿布·卡米(Abu Kamil,大约与摩诃毗罗同一时代)、意大利数学家斐波那契(Leonardo Fibonaci,1170年~1250年)的著作中,也出现了百鸡问题或者百鸡问题的变题。

1202年,斐波那契撰写《计算之书》,设计了一道类似于“百钱买百鸡”的“三十钱买三十鸟”问题:“某人买 30只山鹑、鸽子和麻雀,共花30第纳尔。现在知道每只山鹑值3第纳尔,每只鸽子值2第纳尔,两只麻雀值1第纳尔,即每只麻雀值0.5第纳尔。请问每种鸟各能买几只?”

斐波那契没有列不定方程,他用了一种很古怪的解法:先考虑两种组合,4只麻雀、1只山鹑,组合为5只鸟5第纳尔,2只麻雀、1只鸽子,组合为3只鸟3第纳尔;然后分析两种组合分别取多少次能得30只鸟。斐波那契用这种方法算出唯一符合要求的一组解:第一种组合取3次,第二种组合取5次,即买麻雀22只、鸽子5只、山鹑3只。

事实上,无论是斐波那契的解法,还是我们前面反复使用的解法(化简方程,分析除数、余数与倍数,设定取值范围,先搞定一个未知数,再搞定其他未知数),都属于具体问题具体分析的特殊解法,而不是放之四海而皆准、遇见问题就通杀的一般解法。

有没有一般解法呢?当然有。到了大学,数学专业的学生会学到初等数论这门课程,会学到一次同余方程组(相当于多元一次不定方程)的通用解法。学了通用解法以后,不但能破解类似于“物不知数”和“百鸡问题”的所有题型,而且能迅速判断任意一组不定方程有没有解、有几个解,就像初中阶段我们学到的一元二次方程求根公式和判别式一样。

中国古人也研究过不定方程的通解,并且成功了。在求解不定方程这方面,水平最高的古人应该是宋朝数学家秦九韶,他发明了一套“大衍术”,包括“大衍求一术”和“大衍总数术”,这套算法可以求解所有形式的不定方程,堪称不定方程通杀秘笈。秦九韶之所以发明这套算法,并不是为了解决百鸡问题,而是为了推算历法。他用不定方程的通用解法推算历法,成功地将计算难度降低了一个数量级。

分享到:

责任编辑:刘薇薇

开封网免责声明

①凡本网注明"稿件来源:开封日报、汴梁晚报"的所有文字和图片稿件,版权均属于开封日报社和开封网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明"稿件来源:开封网",违者本网将依法追究责任。
② 本网未注明"稿件来源:开封日报、汴梁晚报"的文/图等稿件均为转载稿,本网转载出于传递更多信息的目的,并不意味着赞同其观点或证实其内容的真实性。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。如擅自篡改,本网将依法追究责任。如对稿件内容有疑议,请及时与我们联系。
③ 如本网转载稿涉及版权等问题,请作者在一周内速来电或来函与开封网联系。
※ 联系电话:0371-22924343

报社简介 | 联系方式 | 友情链接LOGO | 本网介绍 | 大事记 | 版权声明 | 广告服务 | 网站地图 | 投诉举报
国内统一刊号:CN41-0003 豫ICP备05000882号. 开封网 版权所有
互联网新闻信息服务许可证编号:41120170004
中共开封市委宣传部、市政府新闻办主管 开封日报社主办
Copyright © kf.cn All Rights Reserved.
地址:开封市新区汉兴西路与七大街交叉口
联系电话:(0371)22924343 Email:kfw0378@163.com