为什么非零数的 0 次方等于 1?

回忆初中数学,乘方指的是几个相同因数相乘。 就是 ,右上角的指数 3 表示相乘的次数。类似还有, , 。

而当指数取 0 时, 那就是“0 个 5 相乘”。按照我们的直觉,应该是什么都没有发生。可课本规定 ,这看上去怎么感觉是无中生有。

问题出在我们是以加法角度来思考的。好比记账,账本一开始是 0,加三次 5 后,实际是:

就是说账面的初始起点为 0。

但把这套用到乘法里就行不通了,乘法的起点必须是一个“乘上任何数都不改变它”的数——也就是 1。数学上把这种在运算中保持其他数不变的起点称为单位元:加法的单位元是 0,而乘法单位元则是 1。

这样来看, 真正的含义是从乘法起点 1 出发,连续执行 3 次“乘以 5”的操作,即 。那么 的含义就水落石出了:从起点 1 出发,执行 0 次“乘以 5”。因为什么操作都没做,结果自然停留在最初的起点 1。

这一约定不仅合乎直觉,更是维护数学规则统一的需要。我们在中学学过同底数幂的乘法法则:当底数 不为 0,指数 、 为正整数时,两个幂相乘等于指数相加:

为了让这条法则推广到指数为 0 的情况, 就必须等于 1。假如规定 ,不妨取 、 、 代入公式:等号右边是 ,等号左边却变成了 ,左右两侧直接矛盾。因此,只有规定非零数的 0 次方为 1,整套指数运算法则才能严丝合缝地运转。

两条规则在原点处碰撞:

既然规定 如此完美,课本里为什么偏偏要加上“ ”这道免责声明?

原因在于,一旦底数 也取 0,数学里的两条基本规则就会在 这里发生碰撞:

  1. 任何非零数的 0 次方都等于 1,即 (其中 );

  2. 0 的任何正数次方都等于 0,即 (其中 )。

恰好落在两条规则的夹缝中:看指数似乎该得 1,看底数似乎该得 0;但严格按限定条件,两条规则都对它失效。

面对这个棘手的符号,数学界自身也分裂成了两派。1821 年,法国数学家柯西在经典著作《分析教程》中,明确将 列为没有固定值的未定式(indeterminate form)。而在 1992 年,计算机科学家高德纳发表了论文《关于符号的两点注记》,公开呼吁在离散数学与代数学中,应当毫不犹豫地规定 。

这场争论延续了近两百年。并非哪一方错了,而是不同领域的数学家的视角不同。

从微积分的角度来看:结果取决于逼近的路径

微积分关心的是变量动态逼近的过程。考虑函数 (其中 , 为任意实数)。如果把底数 和指数 看作水平面上的坐标,把计算结果 看作竖直高度,那么每一组数值就对应三维空间中的一个点 ,所有点连起来便构成了图 1 的蓝色三维曲面。

打开网易新闻 查看精彩图片

如上图所示:曲面 在 附近的形态。 右侧粗黑竖线对应 的位置,其上的红点分别代表 、 、 、 和 等不同高度的空间点。沿着绿线(按固定比例 )逼近原点,高度全部汇集到 1;沿着红线(让 极速衰减)逼近原点,高度则会停留在 0、0.5、1.5、2 等不同位置。(图自维基,作者Sam Derbyshire)

通常,一个坐标 只对应唯一的一个高度 。但在图 1 右侧 的位置,曲面发生了剧烈扭曲,整条黑色竖线(从 一直向上无限延伸)都挤在同一点的正上方。这意味着,当 和 同时趋近于 0 时,高度 最终停在哪里,完全取决于走哪条路线,我们具体看下:

  • 常规路线(图中绿线与中央一条红线,极限全为 1) :如果固定 ,让 逐渐减小到 0,因为正数的 0 次方恒为 1,高度 始终是 1(对应图中央笔直通向红点 的红线)。更一般地,只要让 和 按固定比例同步归零(即沿水平方向满足 的路径移动,对应图中绿线),无论从哪个方向走,最后都会汇集到红点 。

  • 特定速度路线(图中通向 的红线) :如果让底数 比指数 缩小得快得多,结果就会改变。令 , (其中 )。当 趋近于 0 时, 和 都无限接近 0(例如 时, ),但两者的幂运算结果却是:

由于指数相乘时 被约掉了,无论 多么接近 0,高度 始终停在 。这就是图 1 中保持 高度、贴着曲面滑向红点 的红线。

  • 任意高度路线(图中其余红线) :把上一条路线的底数 2 换成任意大于 1 的常数 ,令 , ,同理可得:

改变 的值,终点就能取遍 到 之间的任意高度。若把指数改为负数 ,则 ,高度又能取遍大于 1 的任意实数(如通向红点 和 的红线)。此外,若固定正数 先让 归零(图最底部的红线),结果又会落向红点 。

所以说,在 附近, 可以逼近任何非负高度,甚至无限增大。只要不指明 和 靠近 0 的相对速度,就无法确定走的是哪条路线,极限也就没有唯一的值。这就是微积分将 列为未定式的原因。

代数与组合的回应:空任务只有一种完成方式

既然微积分里数学家这样认为,为什么代数、组合与计算机教材仍规定 ?

高德纳认为:“趋近于 0 的变量”和“等于 0 的常数”是两回事。微积分里,底数和指数都在连续变化;而在代数和离散数学里,指数上的 0 从一开始就是固定的整数 0。这正好对应图 1 中固定 的中央红线,结果恒为 1。在这些领域规定 ,有下面两个好处:

1. 保持公式简洁

以多项式 为例,为了统一各项的规律,通常会写成:

规定 ,代入 就能直接算出 。如果不允许 ,每次在多项式或二项式定理中代入 ,第一项就会报错,所有公式都必须额外注明“当 时,将 项替换为 1”。

2. 契合计数逻辑

在排列组合中, 对应这样一个计数问题:把 个互不相同的球放进 个互不相同的盒子,总共有多少种放置方案。

  • (就是 2 个球、3 个盒子的情况):对应每个球都有 3 种选择,所以会有 种放法。

  • (2 个球、0 个盒子):没有盒子,球无处可放,方案数为 0。

  • 和 (0 个球):没有球需要安置,要求自然满足。什么都不用做,就是一种合法的放法,而且只有这一种,方案数为 1。盒子有 2 个还是 0 个,对此没有影响。

这个论证在计数问题里是成立的:球的个数就是 0,不存在"逼近 0"的情况,所以 是上述定义的结果。

争论的终点:分清“趋近于 0”与“等于 0”

这场争议的根源在于同一个记号 ,承载了两套完全不一样的数学机制:

  • 离散的计数机制 :指数代表操作次数或是物体的数量。从 1 开始连乘 0 次,或是把 0 个球分到盒子里,得到结果都是 1。约定 ,目的是维持代数公式与计数规则的一致性。

  • 连续的极限机制 :底数 和指数 为可连续变化的实数。当 、 同时趋向 0 时,极限取值取决于二者靠近 0 的相对快慢(如图 1 里走向不同高度的红线、绿线),因此属于未定式,要结合具体路径单独讨论。

厘清两套机制之后,分歧也就清楚了。现在,代数学、组合数学,还有不少编程语言(例如 Python 的 0**0 、IEEE 754 浮点数标准里的 pow(0.0, 0.0) ),都会直接定义 ,但在微积分中,只要遇到底数和指数同时趋于 0 的极限问题,就还要按未定式处理。两套规则不必争辩对错,只要认清各自适用的前提,就能在所属领域内保持自洽。

参考资料:维基百科(zero to the power of zero)