孙子定理和“物不知数”问题

孙子定理和“物不知数”问题

孙子定理,也称为中国剩余定理或中国余数定理。孙子定理是中国古代求解一次同余式组(见同余)的方法。此定理,在公元5-6世纪的中国南北朝时期的数学家孙子提出的“物不知数”问题可以被视为中国剩余定理的一个应用实例。

《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:

有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。

宋朝数学家秦九韶于1247年《数书九章》卷一、二《大衍类》对“物不知数”问题做出了完整系统的解答。

解一

采用通用的方法:逐步满足法

七七数之剩二即除以7余2的数可以写成7n+2,从小到大排列:9,16,23,31,……

然后从小到大找除以3余2的(三三数之剩二)和以5余3的(五五数之剩三)的数:发现最小的是23.

所以23就是所求的数。

先满足一个条件,再满足另一个条件,所以称之为“逐步满足法”。

解二

可以使用孙子定理(中国剩余定理)来解决这个问题

先简要介绍中国剩余定理,下面用现代数学的语言来说明。

假设有如下的一组线性同余方程:

x ≡ a1 (mod m1)

x ≡ a2 (mod m2)

x ≡ an (mod mn)

其中,m1, m2, …, mn是两两互质的正整数,a1, a2, …, an是整数,求解这样的一组线性同余方程的一般公式如下:

x = (Σ(ai × Mi × ti)) mod M

其中,M = m1 × m2 × … × mn,Mi = M ÷ mi,ti是Mi对mi的模逆元,即满足(Mi × ti) ≡ 1 (mod mi)的整数。

模逆元也称为模反元素,假设有一个整数a和一个模m,如果存在一个整数b,使得ab ≡ 1 (mod m),那么我们就称b是a关于模m的模逆元或者模反元素。

关于孙子定理详情可见孙子定理_百度百科

下面使用孙子定理来解决这个问题

设这个整数为x。根据题目的条件,我们可以列出以下同余方程组:

x ≡ 2 (mod 3)

x ≡ 3 (mod 5)

x ≡ 2 (mod 7)

在这个问题中,a1, a2, a3分别代表的是每个同余方程的模余数,即a1 = 2, a2 = 3, a3 = 2。

首先计算所有模数的乘积:M = 3 × 5 × 7 = 105

然后,为每个方程计算Mi,即模数乘积除以对应的模数:

M1 = M ÷ 3 = 35

M2 = M ÷ 5 = 21

M3 = M ÷ 7 = 15

接下来,我们需要计算每一个模逆元ti 即满足(Mi × ti) ≡ 1 (mod mi)的整数

对于M1,我们有 (35 × 2) mod 3 = 1,所以t1 = 2

对于M2,我们有 (21 × 1) mod 5 = 1,所以t2 = 1

对于M3,我们有 (15 × 1) mod 5 = 1,所以t3 = 1

【注:具体说来,对于M1=35,我们需要找到一个数, (35 × t1) mod 3 = 1。通过尝试,我们发现t1 = 2可以满足这个等式,因为 (35 × 2) mod 3 = 70 mod 3 = 1。所以在这个情况下,我们说2就是35关于模3的模逆元。

在更复杂的问题中,尝试所有可能的整数可能是不现实的。这时,我们可以使用扩展欧几里得算法来高效地计算模逆元,这是一个更高级的主题。】

最后,我们将计算得到的结果带入到中国剩余定理的公式中:

x = (a1 × M1 × t1 + a2 × M2 × t2 + a3 × M3 × t3) mod M

= (2 × 35 × 2 + 3 × 21 × 1 + 2 × 15 × 1) (mod 105)

= (140 + 63 + 30) (mod 105)

= 23 (mod 105)

因此,物的数目为23。

你可能感兴趣的:(数学广角,随笔,数学)