∫π每天一道数学题
← 返回孙子算经专题
孙子算经 · 第 3 讲 · 2026-09-01 · 约 10 分钟

第3讲 大数之法——从亿到载,万进制的极限

万万曰亿,万万亿曰兆……一路推到'载'——中国古代的万进制大数系统,重新定义你对'大'的认知。

原典

凡大数之法:万万曰亿,万万亿曰兆,万万兆曰京,万万京曰陔,万万陔曰秭,万万秭曰穰,万万穰曰沟,万万沟曰涧,万万涧曰正,万万正曰载。

——《孙子算经·卷上》

白话翻译

大数的命名规则是这样的:一万个一万叫"一亿",一万个一亿叫"一兆",一万个一兆叫"一京",一万个一京叫"一陔",一万个一陔叫"一秭",一万个一秭叫"一穰",一万个一穰叫"一沟",一万个一沟叫"一涧",一万个一涧叫"一正",一万个一正叫"一载"。

也就是说,从"万"到"载",一共十二个数量级,每级之间都是 一万倍 的进制,而不是我们熟悉的"一千倍"(千进制)或"一亿倍"(亿进制)。这在数学史上是一个非常重要的进制选择,我们后面会详细分析。

示意图

大数之法万进制体系

从万到载的十二级大数体系,每级之间为万进制(×10⁴)

数学解读

1. 为什么是"万",不是"十"也不是"千"?

孙子算经的度量衡用的是十进制(忽→秒→毫→厘→分→寸→尺→丈→引,全×10)。但到了大数命名,突然跳到了×10000(万倍)。为什么?

道理其实很简单:日常用十进已经够用,但描述天文数字,十进制就太啰嗦了。

举个例子,如果十进制命名,从"一"到"亿"需要八级(个、十、百、千、万、十万、百万、千万、亿),而孙子只用二级(万→亿)。一个叫"六千万",在孙子体系里就叫"六千万"——其实是一样的,但到了更大的数,差异就出来了:

十进制:1×1040 —— 要读"一万亿亿亿亿亿"孙子万进制:一载 —— 两个字搞定\begin{aligned} \text{十进制:}\quad &1 \times 10^{40} \text{ —— 要读"一万亿亿亿亿亿"}\\ \text{孙子万进制:}\quad &\text{一载 —— 两个字搞定} \end{aligned}

万进制是在"简洁"和"精细"之间的一个平衡点。十进制太细碎,千进制还差一点,万进制正好——一个数量级覆盖四个十进级,既有足够的精度,又不至于名称太长。

2. 万进制是如何工作的?

万进制本质上是 ×104\times 10^4 进制。用指数表示:

1=1041亿=104×104=1081=108×104=10121=1012×104=1016 1=104×12=1048\begin{aligned} 1 \text{万} &= 10^4 \\ 1 \text{亿} &= 10^4 \times 10^4 = 10^8 \\ 1 \text{兆} &= 10^8 \times 10^4 = 10^{12} \\ 1 \text{京} &= 10^{12} \times 10^4 = 10^{16} \\ &\ \vdots \\ 1 \text{载} &= 10^{4 \times 12} = 10^{48} \end{aligned}

所以"一载" = 104810^{48},也就是1后面跟48个零。这个数字大到什么程度?地球上的原子总数大约是 105010^{50} 的量级——也就是说,孙子算经定义的"载",已经接近整个地球的原子数目了。在公元400年左右,古人的想象力就已经触及了这个尺度,令人惊叹。

3. 中数、上数、下数——大数命名法的三个流派

孙子算经这套大数系统不是唯一的。南北朝时期的《数术记遗》(甄鸾注)记载了三种大数命名法:

  • 下数:十变之(十倍进制),十万曰亿,十亿曰兆,十兆曰京……推到极是 101110^{11}。这种命名法"亿"只等于 10510^5,跟今天日常说的"亿"(10810^8)不一样,容易混淆,后来被淘汰了。

  • 中数:万万变之(万倍进制),就是孙子算经的这套——万万曰亿(10810^8),万万亿曰兆(101210^{12})……一直推到载(104810^{48})。这是中国古代最主流的体系

  • 上数:穷则变(每乘一次就变名),亿亿曰兆,兆兆曰京……推到极是 22122^{2^{12}}。这个体系增长太快,实用性差,主要在哲学讨论中出现。

今天国际通用的"千进制"(千→百万→十亿→兆→千兆……)本质上跟孙子"万进制"的思路一样——选择一个合适的倍率,让大数名称既简洁又不至于跳太大。只不过西方选了 10310^3,中国选了 10410^4

4. 粟米换算中的大数应用

孙子算经在卷上的末尾,用大数系统做了一个具体的计算:

十斛得六千万粟。百斛六亿粟,千斛六兆粟,万斛六京粟,十万斛六秭粟……

这里是把"一斛"(十斗)的粟米粒数(六千万粒)逐级放大,用刚学的大数命名来表述。注意看,换算的中间有一个"十斛"(六千万粟),然后直接跳到"百斛六亿粟"——六千万 × 10 = 六亿,亿=108\text{亿} = 10^8,正好对应。

这个例子说明,孙子并不是在纯理论地讨论大数,而是把大数命名法直接用到实际计算中。一斛六千万粟,百斛六亿粟,千斛六兆粟——用大数名称把庞大的数字压缩成简洁的表达,这正是数学语言的力量。

5. 核心规律:每级乘 10410^4

把整个体系写成一张表:

名称指数数值
10410^410,000
亿10810^8100,000,000
101210^{12}1,000,000,000,000
101610^{16}10,000,000,000,000,000
102010^{20}102010^{20}
102410^{24}102410^{24}
102810^{28}102810^{28}
103210^{32}103210^{32}
103610^{36}103610^{36}
104010^{40}104010^{40}
104810^{48}104810^{48}

规律很清晰:每级乘 10410^4,指数加4。从万到载,指数从 4 一路加到 48。

高中课本关联

① 指数与对数(必修第一册)

大数之法的核心就是指数运算10410^4 的连续乘方,本质上就是指数相加:

104×104=104+4=10810^4 \times 10^4 = 10^{4+4} = 10^8

这跟必修第一册讲"同底数幂相乘,指数相加"完全一致。我建议在讲指数运算时,拿孙子算经的大数命名法当例子——让学生从"一亿到一兆到一京"的命名中,直观感受指数爆炸的威力,比单纯在黑板上列 104×104=10810^4 \times 10^4 = 10^8 有意思得多。

② 科学记数法(必修第一册)

一载 = 104810^{48},这就是科学记数法。我们可以让学生算算:

  • 一载等于多少亿?1048÷108=104010^{48} \div 10^8 = 10^{40} 亿
  • 一载是 104010^{40} 个亿,而这个"亿"本身已经是 10810^8

这正好帮学生理解科学记数法为什么选择"10的幂次"作为表达方式——因为命名法本质上是把指数运算"藏"在文字里,科学记数法则是直接写出来。两者用的是同一个数学结构。

③ 等比数列(选择性必修第二册)

大数之法的名称序列(万、亿、兆、京、陔、秭……)是一个等比数列

a1=104,q=104a_1 = 10^4,\quad q = 10^4 an=104×(104)n1=104na_n = 10^4 \times (10^4)^{n-1} = 10^{4n}

从"万"到"载"一共12项,末项是 a12=1048a_{12} = 10^{48}。这个数列的通项公式非常简洁,可以用作等比数列的课堂引入——贴近生活(虽然"大数"不是日常,但"一兆""一亿"这些词学生都听过),又能展示数学建模的过程。

思考与拓展

  1. 算一算:如果采用"上数"(亿亿曰兆),一兆等于多少?跟孙子算经的"一兆"(101210^{12})相比,相差了多少倍?用指数形式表示。

  2. 想一想:今天国际通用的数字单位是"千、百万、十亿、兆、千兆……"(K、M、B、T),每级乘1000。如果让你设计一个适用于21世纪的大数命名法,你会选什么进制?为什么?考虑一下互联网数据(TB、PB、EB)的命名跟传统大数命名的关系。

  3. 查一查:日本的"兆"(ちょう)和中文的"兆"分别代表 101210^{12} 还是 101610^{16}?为什么同样一个汉字,在东亚不同国家代表不同的数值?这背后有什么历史原因?

一句话总结

孙子算经的"万进制"大数命名法,是人类最早的系统化大数体系之一——从万到载,十二个名称覆盖了 10410^4104810^{48} 的46个数量级,用最简洁的语言表达了指数增长的思想,直到今天仍然影响着东亚各国的数字命名习惯。

— Y. · 2026-09-01