**大衍求一术**，又名**求一术**，是中国数学史中通常被用来泛指南宋数学家秦九韶发明的求解中国剩余定理的历史算法（不是中国剩余定理的现代算法）。秦九韶原来的《数书九章》求解一次同余式组的算法的总称叫做**大衍总数术**，或**大衍术**、而其中一个计算**乘率**的子程序，才是**大衍求一术**。

大衍术是秦九韶最得意的创作，特放在《数书九章》之首。欧洲直到18世纪德国数学家高斯，才有相类的结果。秦九韶大衍术领先世界五百余年。

历史
--

一次同余式组问题，最早见于《孙子算经》卷下第二十六问：

> 有物不知其数，三三数之剩二，五五数之剩三，七七数之剩二。问物几何？答曰：二十三。術曰：三三數之，賸二，置一百四十；五五數之，賸三，置六十三；七七數之，賸二 ，置三十。并之，得二百三十三，以二百一十減之，即得。凡三三數之，賸一，則置七十 五；五五數之，賸一，則置二十一；七七數之，賸一，則置十五。一百六以上，以一百五 減之，即得。
> 
> 

宋周密《志雅堂杂钞》述**鬼谷算**，又名**隔墙算**。
杨辉《继古摘奇算法》记载**剪管术**解孙子物不知数的算法：

> 术曰：三数剩一下七十，五数剩一下二十一，七数剩一下五十。三位并之得二百三十三，满一百五去之，减两个一百五，余二十三为答数
> 
> 

> 七数剩一，八数剩二，九数剩三，问本总数几何？答曰：四百九十八
> 
> 

明严恭《通源算法》：

> 今有散钱不知其数，作七十七穿之，欠五十凑穿，若作七十八穿之，不多不少。问钱数若干？答曰：二千一百六文
> 
> 

明朝数学家程大位有《孙子歌》如下：

> 三人同行七十希，五樹梅花廿一支，七子團圓正半月，除百零五使得知
> 
> 

清代学者张敦仁在《求一算术》中提出大衍求一术源自《孙子算经》物不知数，后世学者，多从其说。但近年李俨、钱宝琮等学者提出大衍求一术很可能源自西汉《三统历》中计算上元积年的"通其率"近似法，其后《古四分历》和《乾象历》沿用此法。

事实上，秦九韶在《数书九章序》中就写道："独大衍法不载《九章》，未有能推之者，历家推演法颇用之"，"历家虽用，其用不知，小试经世，姑推所为，述大衍第一。"

大衍总数术
-----

秦九韶大衍总数术
秦九韶大衍总数术原载《数书九章》第一卷上 大衍类 《蓍卦发微》：

> 置诸元数，两两连环求等，约奇弗约偶，遍约毕，乃变元数，皆曰定母，列右行，各立天元一为子，列左行，以定诸母，互乘左行之子，各得名曰衍数，次以各定母满去衍数，各余名曰奇数，以奇数与定母，用大衍术求一。
> 
> 

程序如下：。

1。将问数（有关问题中的数字）[m\_{{1}}，{\displaystyle m\_{2}}……{\displaystyle m\_{n}}]，分为四大类
* 元数：整数
* 收数：带小数的有理数。
* 通数：分数
* 复数：10的倍数。

2.如果问数[m\_{{1}}，{\displaystyle m\_{2}}……{\displaystyle m\_{n}}]是收数，则以10的倍数乘之化为元数列，按元数计算。
3：如果问数[m\_{{1}}，{\displaystyle m\_{2}}……{\displaystyle m\_{n}}]包含分数，则化为元数列，按元数计算。
4。当问数[m\_{{1}}，{\displaystyle m\_{2}}……{\displaystyle m\_{n}}]是整数
4.1:将问数成对以其最大公约数约化，约奇数不约偶数；如二数都是偶数，约化其中之一。如二数中一个数是10的倍数，另一数的个位是5，则约化偶数不约化奇数。最后得到一组
**定母**：[{\displaystyle m'\_{1}}，{\displaystyle m'\_{2}}……{\displaystyle m'\_{n}}]。

**定母**之中避免过多1，得到一个"1"即可。各定母为相应问数的因子；定母两两互为质数。定母的乘积称为**衍母**，是问数的最小公倍数。

**衍母** v=∏ {\displaystyle m'\_{i}}; i=1…n;
4.3：将各定母分别除衍母，得到一组**衍数**：[{\displaystyle M\_{1}}，{\displaystyle M\_{2}}……{\displaystyle M\_{n}}]
其中 **衍数** {\displaystyle M\_{i}=} v/{\displaystyle m'\_{i}}
4.4 用**定母**{\displaystyle m'\_{i}} 约化**衍数**{\displaystyle M\_{i}} (i=1……n)；余数d\_{{i}} 称为**奇数**。
4.4 当**奇数**d\_{{i}}=1时，**乘率**x\_{{i}}=**定母**{\displaystyle m'\_{i}}。
4.5 当**奇数**d\_{{i}}≠1时，从**定母**{\displaystyle m'\_{i}}和**奇数**d\_{{i}}，用**大衍求一术**计算**乘率**x\_{{i}}；（i=1……n)；
例一：《孙子算经》"物不知数"，
* 问数：3，5，7；因两两互素，也即定母。
* 定母：3，5，7
* 衍母 =3\*5\*7=105
* 衍数=35，21，15
* 奇数：2，1，1
* 乘率：?,5,7

例二：问数108，57，75，40
定数：27，19，25，8
* 衍母 =27\*19\*25\*8=102600
* 衍数=3800，5400，4104，12825
* 奇数：20， 4， 4， 1
* 乘率：？，？，？，8

大衍求一术
-----

### 求乘率

秦九韶《数书九章》大衍求一术
秦九韶用大衍求一术解：

乘率 \* 奇数≡1（mod 定母）

> 大衍求一術云︰置奇右上，定居右下，立天元一於左上。先以右上除右下，所得商數與左上一相生，入左下。然後乃以右行上下，以少除多，遞互除之，所得商數隨即遞互累乘，歸左行上下。須使右上末後奇一而止，乃驗左上所得，以為乘率。
> 
> 

例一：定母 83，奇数 65，求乘率x

x\*65≡1 mod（83）
答：乘率=23
置天元一于左上角，置奇数于右上角，置定数右下角，置0于左下角。

|  |  |  |
| --- | --- | --- |
| 大衍 | 奇数 |  |
| 0 | 定母 |  |

|  |  |  |
| --- | --- | --- |
| 1 | 65 |  |
| 0 | 83 |  |

83/65 =1， 置左下，余数 18 置右下。

|  |  |  |
| --- | --- | --- |
| 1 | 65 | 0 |
| 1 | 18 | 1 |

65/18 商=3，加于左上，余数11，置右上

|  |  |  |
| --- | --- | --- |
| 4 | 11 | 3 |
| 1 | 18 | 0 |

18/11，商=1，乘左上，加于左下，余数7，置右下。

|  |  |  |
| --- | --- | --- |
| 4 | 11 | 0 |
| 5 | 7 | 1 |

余类推，直到右上=1 为止。

|  |  |  |
| --- | --- | --- |
| 9 | 4 | 1 |
| 5 | 7 | 0 |

|  |  |  |
| --- | --- | --- |
| 9 | 4 | 0 |
| 14 | 3 | 1 |

|  |  |  |
| --- | --- | --- |
| 23 | 1 | 1 |
| 14 | 3 | 0 |

右上=1，左上=23=乘率。
{\displaystyle 23\*65=1495=}1 (mod 83)

参考文献
----

### 引用

1. ↑  李俨 118-120页
2. ↑  李俨 《大衍求一术的过去和未来》
3. ↑  钱宝琮 《秦九韶数书九章研究》 621页
4. ↑  李继闵 145-155
5. ↑  王守义 10-38
6. ↑  李俨 123-133
7. ↑  袁向东，李文林 159-179
8. ↑  李俨 128-130页
9. ↑  李倍始 p341

### 来源

* 李俨 ：《大衍求一术的过去和未来》《李俨钱宝琮科学史全集》卷6 121页《程大位的孙子歌》辽宁教育出版社. 1998
* 钱宝琮：《秦九韶数书九章研究》》《李俨钱宝琮科学史全集》卷9
* 吴文俊 主编：《中国数学史大系》 第五卷 第三、四、五编
* 吴文俊 主编：《秦九韶与数书九章》 北京师范大学出版社 1987
* ［比利时］李倍始（Ulrich Libbrecht）：*Chinese Mathematics in the Thirteen Century (The Shu-Shu-Chiu-Chang of Chin Chiu shao)* Dover Publication ISBN 0486446190
* 秦九韶 原著，王守义 遗著，李俨 审校：《数书九章新释》 安徽科学技术出版社 1992 ISBN 7-5337-0788-5/O
* 李继闵：《大衍求一术溯源》，吴文俊 主编 ：《秦九韶与数书九章》 138-158页 北京师范大学出版社 1987
* 袁向东、李文林：《数书九章中的大衍类问题和大衍总数术》 ，吴文俊 主编 ：《秦九韶与数书九章》 159-179 北京师范大学出版社 1987

参见
--

* 中国数学史主题

* 中国剩余定理
* 秦九韶


|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
中國數學史 |
| --- |
|  |
| 上古至西汉 | 
* 幻方
* 十进位制
* 九九表
* 算筹
* 筹算
* 算表
* 算数书
* 《周髀算經》
* 《九章算术》
* 张苍
* 耿寿昌
* 《许昌算术》
* 《杜忠算术》
* 勾股定理
* 开方术
* 盈不足术

 |
|  |
| 东汉三国 | 
* 张衡
* 赵爽
* 刘洪
* 徐岳
* 《数术记遗》
* 王蕃
* 刘徽
	+ 割圆术
* 《海岛算经》
* 勾股容方
* 出入相补

 |
|  |
| 晋隋唐五代 | 
* 张邱建
	+ 《张邱建算经》
* 夏侯阳
	+ 《夏侯阳算经》
* 何承天
	+ 调日法
* 甄鸾
* 祖冲之
* 开差幂
* 牟合方盖
* 王孝通
	+ 《缉古算经》
* 李淳风
* 僧一行
* 大衍历
* 明算科
* 重差术
* 《孙子算经》
* 《五经算术》
* 《五曹算经》
* 《算经十书》

 |
|  |
| 两宋 | 
* 沈括
* 李籍
* 刘益
	+ 《议古根源》
* 贾宪
	+ 贾宪三角形
	+ 增乘开平方法
	+ 增乘开立方法
	+ 《黄帝九章算术细草》
* 秦九韶
	+ 秦九韶算法
	+ 《数书九章》
	+ 大衍求一术
* 杨辉
	+ 杨辉纵横图
	+ 幻圆
	+ 《杨辉算法》
		- 《乘除通變算寶》
		- 《田畝比類乘除捷法》
		- 《續古摘奇算法》
	+ 《詳解九章算法》
	+ 《日用算法》
* 《九章算法纂類》
* 递增三乘开四次方术

 |
|  |
| 辽金元 | 
* 张行简
* 天元术
* 李冶
	+ 《测圆海镜》
	+ 《益古演段》
* 《授时历》
	+ 郭守敬
	+ 王恂
* 朱世
	+ 《算学启蒙》
	+ 《四元玉鉴》
	+ 垛积术
* 招差术
* 赵友钦
	+ 《革象新书》
	+ 割圆术
* 金历法
* 耶律楚材历法
* 阿拉伯幻方
* 马拉加天文台

 |
|  |
| 明 | 
* 《丁巨算法》
* 《算法全能集》
* 《透帘细草》
* 吴敬
	+ 《九章详注比类算法大全》
* 王文素
	+ 《新集通證古今算學寶鑑》
* 朱載堉
	+ 十二平均律
	+ 《算学新说》
	+ 《嘉量算經》
* 珠算
	+ 算盘
	+ 《盘珠算法》
* 柯尚迁
	+ 《数学通轨》
* 程大位
	+ 《算法統宗》
		- 格子乘法
* 徐光启
	+ 译《几何原本》前6卷
	+ 《崇祯历书》
* 《算法全能集》
* 《详明算法》
* 《通源算法》

 |
|  |
| 清 | 
* 薛凤祚
* 李子金
	+ 《算法通义》
* 梅文鼎
* 年希尧
	+ 《视学》
* 戴震
* 李湟
* 沈钦裴
* 《畴人传》
* 《数理精蕴》
* 明安图
	+ 《割圜密率捷法》
	+ 割圆连比例
	+ 明安图变换
	+ 卡塔兰数
* 吴烺
* 焦循
	+ 《加减乘除释》
* 李锐
	+ 《开方说》
* 汪莱
	+ 《衡斋算学》
* 孔广森
* 董祐誠
	+ 《割圆比例术图解》
	+ 项名达
* 《象数一原》
* 張敦仁
	+ 《求一算术》
* 戴煦
	+ 《求表捷术》
* 王韬
* 李善兰
	+ 李善兰恒等式
	+ 《则古昔斋算学》
	+ 译《几何原本》后9卷
* 华蘅芳
	+ 《决疑数学》
* 丁取忠
	+ 《白芙堂算学从书》
* 时曰醇
	+ 《百鸡术衍》
* 同文馆
	+ 《同文馆算学课艺》

 |
|  |
| 现代 | 
* 胡明复
* 熊庆来
* 何鲁
* 段子燮
* 李俨
* 姜立夫
* 陈苏学派
	+ 陈建功
	+ 苏步青
* 陈省身
* 钱宝琮
* 江泽涵
* 华罗庚
	+ 《數論導引》
	+ 《堆叠素数论》
* 王元
* 潘承洞
* 许宝騄
* 陈景润
* 丘成桐
* 吴文俊
	+ 吴消元法
* 廖山涛
* 张益唐

 |

 |