一个代数数(algebraic number),是指某个具有整数系数的多项式(polynomial with integer coefficients)的根。
一个超越数(transcendental number),则是任何不是代数数的数。

本文将逐步拆解这些定义,考察两类数的若干性质,并展示它们在数学各分支中的用途。我们这里只讨论实数,但这些概念同样适用于复数。
代数数的定义
如前所述,代数数就是某个整数系数多项式的根。换言之,任何能解如下方程的数,都是代数数:

其中所有的系数都必须是整数,这当然包括正数、负数以及零。在数学符号中,我们通常写作这些系数属于整数集合 ℤ:

同时我们还需说明:最高次项系数 a_n 不能为零。原因很简单——如果最高次项的系数为零,那么该项就会被省略,方程的次数会下降。例如,一个“立方多项式”若其三次项系数为零,实际上就是一个二次多项式:

代数数的简单例子
那么,有哪些具体的代数数呢?我们可以先考察一些简单整数多项式的根。根据定义,任何这类多项式的根,都是代数数。
首先来看一个一次多项式(也就是线性方程),其中 a 是整数:

该方程的解x = a。因此,根据定义,a 是代数数。既然 a 可以是任何整数,那么所有整数都是代数数。
再看另一种情况:

它的解为 x=a/b,其中 a,b 为整数且 b≠0。这意味着所有有理数(rational numbers)都是代数数。
接下来看看二次多项式(quadratic polynomial)。举个简单的例子:

解得 :

此方程在 a/b 为正数时(即 a,b 同号)才有实根,而在这种情况下,正负平方根均为解:

这意味着——任何有理数的平方根都是代数数。当 b=1时,a/b 就是整数,因此任何整数的平方根也是代数数。
类似地,我们可以看一个立方多项式(cubic polynomial):

此时,方程的根就是该数的立方根:

与平方根不同的是,这里 a,b 不必同号,因为负数也有实数立方根。这说明:任何有理数(以及当然的整数)的立方根,也是代数数。
我们不再逐一展示,但逻辑已经很清楚:一般地,任何有理数的 n 次方根都是代数数,整数是其特例。
更多代数数的例子
我们已经知道:有理数及其根都是代数数。那么,如果我们把它们进行一些组合运算呢?例如,一个数与它的根的和:

乍看之下,这个形式似乎像某个二次方程的根(根据标准的二次求根公式)。可以检验一下:是否存在一个整数系数多项式,其根恰好是上述表达式?要做到这一点,我们需要消去方程中含根的项。首先来求它的平方:

接着, x^2中减去 4x,可以消掉根号项,只剩整数系数:

因此可以写成:

也就是说,一个“数与一个平方根之和”,实际上是某个二次方程的根,因此它是一个代数数。
我们在此不再逐步证明,但用同样的方法,可以说明——任意一个“有理数 + 有理数的根”,都可以构造出一个整数系数多项式,使其成为根。更进一步,只要一个表达式仅包含有理数、它们的根、以及加减乘除这些基本运算,我们总能找到一个整数多项式,它是该多项式的解。
因此,我们得到一个普遍规则:
凡是只包含有理数、整数次方根、整数幂,以及加、减、乘、除的表达式,其结果都是代数数。
任何符合这一规则的数,都是代数数。但正如我们马上会看到的——并非所有代数数都能用这种形式表示。
无法“代数求解”的代数数
众所周知,二次公式可以解任何二次方程。并且因为这些方程的系数若是整数,其根必然是代数数。同样,我们也有类似的解析公式,可以解三次方程与四次方程(即最高次幂为 3 或 4 的多项式)。
然而,对于五次方程(quintic)及更高次数的多项式,情况完全不同。数学上已证明——不存在类似的“通用代数求根公式”。有时我们可以巧妙地把五次方程因式分解(factorise),例如:

可以被分解为:

但并非总能如此。例如:

对于这个多项式,目前没有任何精确的代数分解形式。这意味着:我们无法将它的根用前述的“加减乘除与开方”这类基本运算精确表达出来。
如果一个方程无法精确分解,那是否意味着它没有根?当然不是。我们只要作图即可发现——它确实有一个实根:

其实数根约为 -1.1673。此外,它还有四个复数根。这些数算是代数数吗?答案是:当然是。
它们都是某个整数系数多项式的根,因此根据定义,它们是代数数。只是我们无法用简单的代数运算表达它们而已。
可以将刚才的规则修正为:
任何只使用有理数、整数根与幂、加减乘除所构成的表达式都是代数数,但并非所有代数数都能用这种形式表达。
换言之:有些代数数无法被“代数式”写出。
那么,我们该如何找到这些根?
对于那些无法代数求解的五次方程,我们该如何找到它们的根呢?答案是不能精确地找到它们。只能通过数值方法(numerical methods)来求得近似值。
例如,可以使用区间平分法(interval bisection):在某个范围(例如 −1.6 附近)尝试不同的 x 值,并逐步缩小区间,直到找到一个 x 值,使得函数结果越来越接近零。
另一种方法是使用牛顿迭代法(Newton’s method),这是一种收敛速度更快的迭代算法。
这似乎有些“不够优雅”,但如果仔细想想,我们在许多情况下其实都是这样做的。
举例来说,我们都知道一个方程的解是根号2。我们给这个值取了名字,但它的确切数值是什么呢?没有人知道。因为根号2 是无理数,它没有有限或循环的小数展开。只能通过近似计算来求它的值,而通常使用的正是牛顿法或类似算法。
所以,这与求“无法解析求根”的多项式的近似根,本质上并无不同。
代数数的集合是可数的
我们知道“无穷集合”可以分为两类:可数(countable)与不可数(uncountable)。整数集合是无穷的,但可数;实数集合则是不可数的。那么,代数数的集合又属于哪一类呢?
我们知道——每个代数数都是某个整数多项式的根。那这些根是否可以被“数清楚”呢?让我们分步骤来分析:首先,考虑一次多项式(order 1 polynomial):

其中系数 a_0 是整数,所以 a_0 的所有可能取值构成一个可数集合。同样,a_1 也是如此。
有一个定理:有限个可数集的笛卡尔积仍然是可数集。因此,所有可能的系数对 (a_0,a_1) 构成的集合是可数的。而每个多项式都有且仅有一个根,因此所有一次多项式的根的集合也是可数的。
接着考虑二次多项式(order 2 polynomial):

此时系数为三元组 (a_0,a_1, a_2)每个系数都是整数,所以三元组的集合也是可数的。每个二次方程至多有两个根,因此所有二次方程根的集合依然可数。
同样的逻辑适用于三次、四次以及任意更高次的多项式。每一类固定次数的多项式,其所有根的集合都是可数的。
再用另一个集合论定理:
任意可数个可数集合的并集,仍然是可数集合。
既然有“次数为 1、2、3、4、…”这些可数多项式族,并且每一族的根集可数,那么它们的并集(即所有整数系数多项式的所有根)仍然是可数的。
因此,我们得出结论:
代数数的集合是可数的。
超越数(Transcendental numbers)
正如前面所说,任何不是代数数的数,就是超越数。换句话说,超越数是指那些不是任何整数系数多项式的根的数。
在研究代数数的早期,人们并不确定——超越数是否真的存在。毕竟,我们能通过各种有理数与无理根的组合,创造出无数代数数;那是否意味着“所有实数”都可以通过这种方式生成呢?
顺便一提,我们现在知道:代数数集合是可数的,而实数集合是不可数的。由于不可数集的规模严格大于可数集,实数中必定存在不属于代数数的部分——这部分数即为超越数。
但这种认识来源于康托尔(Cantor)的集合论,而在他出生之前,超越数的存在还只是一个未解之谜。
即便后来人们知道超越数必然存在,要真正找到一个例子却极其困难。
因为我们必须证明:这个数不可能是任何一个整数系数多项式的根——换句话说,要排除所有可能的多项式。这种证明极为艰难。
确实,数学家们花费了巨大心力才找到确凿的例子。直到今天,仍有许多被认为“几乎肯定是超越数”的数,但尚无人能给出严格证明。
本节我们不讨论那些复杂的证明细节,它们将留待后文专篇介绍。
刘维尔常数(The Liouville constant)
第一个被严格证明为超越数的,是由约瑟夫·刘维尔(Joseph Liouville)构造出的一个特殊数,称为刘维尔常数(Liouville constant)。
这个数是他有意设计出来,为了能够明确证明其超越性。它定义如下:

为了理解这个数,我们先来看它的前几个项:

每一项的形式是 10^{-n!},也就是说,它在小数部分第 n! 位上出现一个“1”,其余全是“0”。因此:
第一项在小数第 1 位有一个 1;
第二项在第 2 位;
第三项在第 6 位;
第四项在第 24 位;以此类推。
把这些项全部相加后,得到一个小数——绝大部分都是“0”,只有极稀疏的位置上有一个“1”。
由于阶乘 n! 的增长极快,这些“1”之间的间隔也会越来越大。例如,10!=3,628,800,因此第十项就是一个小数点后接三百六十多万个零,再接一个“1”。
在此不写出完整证明(,这里只给出证明思路:
设 L_n 表示刘维尔常数 L 截断至第 n 位小数。可以证明:如果 L 是某个整数系数多项式的根,那么在 n 足够大时,所有 L_n 也必须是该多项式的根。原因在于:随着取更多的小数位,“1” 出现得越来越稀疏,当在某个位置截断后,其影响几乎消失,得到的 L_n 仍满足相同的方程。
这样一来,所有 L_n都是解,也就是说这个多项式将有无穷多个根。但一个多项式不可能拥有无限多个不同的根。因此,L 不可能是任何整数系数多项式的解。
由此可证,刘维尔常数是超越数。
超越的数学常数
我们熟知的两个数学常数——π(圆周率)和 e(欧拉数)——都已经被证明是超越数。
除此之外,还有若干数学表达式也被证明是超越的,例如:
e^π
e^a,其中 a 为任意代数数(但 a≠0)
换句话说,凡是以代数数为指数的 e 的幂,都是超越数。
这些数都是超越数:

然而,也存在一些类似形式的组合,例如含有 π 与 e 的复杂混合项——目前尚无人能证明它们是否超越。这并不意味着它们不是超越数;大多数学者认为它们极有可能是,但到目前为止,还没有找到确凿的证明。

希尔伯特数(Hilbert’s number)
“希尔伯特数”非常有趣,因为它只由整数与平方根组成:

为什么这个数不是代数数呢?回忆一下:一个数若只由有理数和根式,通过加、减、乘、除运算得到,那么它必然是代数数。
但在这里,2 被 提升到了根号2 次幂。“幂运算”超出了我们先前规则中的允许范围。只有整数幂才是允许的,因为那可以用有限次乘法表达;而把一个数提升到无理指数时,这种操作无法用有限代数运算表达。
这一点本身并不能直接证明它是超越数——它只是提示我们它可能是。然而,大卫·希尔伯特(David Hilbert)确实证明了它的超越性,因此这个数后来便以他的名字命名。
超越数的集合是不可数的
我们知道,每一个实数要么是代数数,要么是超越数。先前已经证明过:
代数数的集合是可数的。
现在我们来看看:超越数的集合是否可数?
为了简洁起见,直接使用一些集合论中公认的事实(不做证明):
实数集合是不可数的。与代数数不同,实数无法被一个一个地列出来或编号,尽管代数数是无限多的,但实数的数量远远超出它。
如果从一个不可数集合中移除一个可数集合,剩下的仍是不可数集合。换句话说,假如我们从实数(不可数)中去掉所有代数数(可数),那么剩下的集合——也就是超越数集合——仍然是不可数的。
由此我们得出结论:
超越数的集合是不可数的。
这结论颇具反直觉。我们熟悉的代数数多如繁星——所有整数、分数、各种平方根、立方根……全都属于代数数。而多数人能叫出名字的超越数,也不过 π 和 e 而已。
但事实上,几乎所有的实数都是超越数。那些代数数,反而只是浩瀚数轴上极其稀少的点点孤星。