虽说数学悖论大多是一些让人越想越糊涂的逻辑思维游戏,但也有不少悖论来自于实实在在的数学问题。在缺乏现代数学工具的年代,这些反直觉的结论和看似不可调和的矛盾让数学家们百思不得其解,那些最难解决的悖论甚至为数学新分支的开创带来了足够的动机。不太为人熟知的 cramer 悖论就是一个漂亮的例子。
在描述 cramer 悖论之前,让我们先来考虑一个简单的情况。
两条直线交于一点。
反过来,过一点可以做两条不同的直线。
事实上,过一点可以做无数条直线。
确定一条直线需要两个点才够。
一切都很正常。
现在,考虑平面上的两条三次曲线。
由于将两个二元三次方程联立求解,最多可以得到 9 组不同的解,因此两条三次曲线最多有 9 个交点。另外,三次曲线的一般形式为
x^3 + a·x^2·y + b·x·y^2 + c·y^3 + d·x^2 + e·x·y + f·y^2 + g·x + h·y + i = 0
这里面一共有 9 个未知系数。
代入曲线上的 9 组不同的(x, y),我们就能得出 9 个方程,解出这 9 个未知系数,恢复出这个三次曲线的原貌。
也就是说,平面上的 9 个点唯一地确定了一个三次曲线。
这次貌似就出问题了:“两条三次曲线交于 9 个点”和 “ 9 个点唯一地确定一条三次曲线”怎么可能同时成立呢?
既然这 9 个点是两条三次曲线所共有的,那它们究竟会“唯一地”确定出哪条曲线呢?
在没有线性代数的年代,这是一个令人匪夷所思的问题。
cramer 和 Euler 是同一时代的两位大数学家。
他们曾就代数曲线问题有过不少信件交流。
上面这个问题就是 1744 年 9 月 30 日 cramer 在给 Euler 的信中提出来的。
在信中, cramer 摆出了两个稍作思考便能看出显然成立的事实:一条三次曲线能用 9 个点唯一地确定下来,两条三次曲线可能产生出 9 个交点。
cramer 向 Euler 提出了自己的疑问:这两个结论怎么可能同时成立呢?
Euler 心中的疑问不比 cramer 的少。
接下来的几年里,他都在寻找这个矛盾产生的源头。
1748 年, Euler 发表了一篇题为 Sur une contradiction apparente dans la doctrine des lignes courbes (关于曲线规律中的一个明显的矛盾)的文章,尝试着解决这一难题。
正如大家所想,矛盾的源头就是, 9 个点不见得能唯一地确定出三次曲线的方程,因为不是每个点的位置都能给我们带来足够的信息。
Euler 试图向人们解释这样一件事情:曲线上的 9 个点虽然给出了 9 个不同的方程,但有时它们并不能唯一地解出那 9 个未知数,因为有些方程是废的。
在没有线性代数的年代,解释这件事情并不容易。
Euler 举了一个最简单的例子:方程组
3x ? 2y = 5
4y = 6x ? 10
表面上存在唯一解,但事实上两个方程的本质相同——第一个方程乘以 2 再移项后就直接变成第二个方程了。
换句话说,后一个方程并没有给我们带来新的信息,有它没它都一样。
当然,这只是一个最为简单的例子。
在当时,真正让人大开眼界的则是 Euler 文中给出的三元一次方程组:
2x ? 3y + 5z = 8
3x ? 5y + 7z = 9
x ? y + 3z = 7
这个方程组也没有唯一解,原因就很隐蔽了:后两个方程之和其实是第一个方程的两倍,换句话说第一个方程本来就能由另外两个方程推出来。
因此,整个方程组本质上只有两个不同的方程,它们不足以确定出三个未知数来。
Euler 还给出了一个四元一次方程组的例子,向人们展示了更加复杂的情况。
类似地, 9 个九元一次方程当然也会因为出现重复信息而不存在唯一解,不过具体情况几乎无法预料:很可能方程(1)就是方程(2)和方程(5)的差的多少多少倍,也有可能方程(7)和(9)的差恰是前三个方程的和。
究竟什么叫做一个方程“提供了新的信息”,用什么来衡量一个方程组里的信息量,怎样的方程组才会有唯一解?
Euler 承认,“要想给出一个一般情况下的公式是很困难的”。
此时大家或许能体会到, Euler 提出的这些遗留问题太具启发性了,当时的数学研究者们看到之后必然是浑身血液沸腾。
包括 cramer 在内的数学家们沿着 Euler 的思路继续想下去,一个强大的数学新工具——线性代数——逐渐开始成型。
没错,这个 cramer 正是后来提出线性代数一大基本定理—— cramer 法则——的那个人。