一桩盗窃案

2024-04-02 数学科普 ← 返回栏目

早在公元四世纪前,我国数学著作 《孙子算经》中就提出过著名的“孙子问题”:

"今有物不知其数, 三三数之剩二,五五数之剩三,七七数之剩二,问物几何?"

也就是说

“有一数, 用3除它余2,用5除它余3,用7除它余 2,求这个数.”

用现代数学符号来记就是: 求一最小正整数 , 满足联立一次同余式:

这里,符号表示: 除以余.

一般地, 符号 表示: 除以 余r 或者说, 与 同除以, 其余数相等.

这个问题怎么求解呢?需要用到大衍求一术和中国剩余定理.

大衍求一术

什么叫大衍求一术呢?通俗讲就是求”一个数的多少倍除以另一数, 所得余数为”的方法,即求“ 中的的方法. 称为乘率.

大衍求一术是公元1247年,南宋数学家秦九韶在《数书九章》一书记载的一种著名的方法,他用这种方法解联立一次同余式问题,获得了很好的效果,给中国和世界数学史增添了光辉的一页.

例如:求解: mod 83.

即2970的多少倍除以83,所得余数为1?

具体操作步骤如下:

由此得出 注:当 左式的余数为1,且n为偶数时,那么

当 左式的余数为1,且n为奇数时,那么

大衍求一术和现代的求最大公约数的辗转相除法类似,至于具体原理,在此不再说明,有兴趣的可查阅参考文献.

孙子问题求解

回到“孙子问题”:“有一数, 用除它余,用除它余,用除它余,求这个数.”

“第一步,先将问题转化为求三个数,分别是

①除余,和能除尽;②除余,和 能除尽;③除余, 和 能除尽.

①这个问题就是求解同余式 mod 3, 我们用大衍求一术来解

所以,,显然.

也就是被除余.

②除余,和 能除尽,这个可以猜一下,就是符合条件最小的数,所以不需要用大衍求一术求解了.也就是被除余.

③同②,除余, 和 能除尽, 这个数是.也就是被除余.

第二步,①被除余, 于是被除余. ②被除余,于是被除余. ③被除余,于是被除余.

也就是用70乘以“用 3 除所得的余数 2”得 140,21 乘以 “用5除所得的余数3”得63,15乘以“用7除所得的余数2”得30,然后加起来得233.

注意到是互为质数的,因此总和是满足题目条件的一个数.

又 于是一般的通解为 满足条件的最小正整数为

其实第二步,就是应用“中国剩余定理”:下列联立一次同余式

的解为 (其中 为整数)

在《数书九章》里记录了一桩盗窃案问题,我们把它作为今日的挑战题,请你化身宋慈来查案吧!

参考文献

[1] 夏树人, 孙道杠.中国古代数学的世界冠军[M].重庆出版社,1984.

[2] 刘钝. 国学丛书-大哉言数[M].辽宁教育出版社,1993.

内容来源:橘子数学(原文链接)
上一篇
盈不足问题