我们在小时候学习指数的时候经常会误解指数的定义,很多人认为,指数就是重复连乘,这对于特殊的情况来说(指数是非零整数时),是一个不错的解释,小学生也能够很快理解这个概念,但是随着时间的推移,你见到的事物更多了,你就会在这个过程中怀疑这种连乘的方法是否是失效了,因为你看到31.5之类的东西,甚至是更奇怪的,例如00,而且是00其结果居然是1,我记得高中时老师对于这个概念一笔带过,就说这是它的“定义”,但对我来说我是很难接受这个奇怪的定义的。后来想起这些问题,感觉这些概念有必要随着自己见识的增长与时俱进了。
我们最先接触到的基本数学运算是加减乘除,“加减”与“乘除”分别属于数学中的第一级和第二级运算,详情见《对数可以延长人类寿命》。我们想想在很小的时候,当我们学习刚开始算术的时候,老师会教我们通过数指头的方法来完成加法的计算(例如5+6=11),以及通过重复加法来实现乘法计算例如(2×3=2+2+2=6)(当然有的老师只会教乘法表…)。不过不管怎么说,这一切看起来似乎都挺自然的。
但上述方法当然也是针对简单或者说特殊的情况,当包含有负数或者无理数的时候呢,这种方法似乎就行不通了。加减乘除本身并没有问题,问题在于我们对算法的理解上出现了偏差,我们对这些算法的理解是片面的是部分成立的,而不具有普适性。
为了使算法的描述具有普适性,不应单纯地用计数来实现加法,而是将其看做是在一条直线上点的位置变化。这种位置可以是负的(如-1),可以是在某些数之间(例如无理数),或者是在其他的维度上(例如虚数i,详情请见《虚数不“虚”》)。
那么,更加完备的算法思想应当是:加法是一种“滑移”,例如:+3就是向右滑移3个单位。乘法就是缩放,例如:×3就是扩展到原来的3倍。
那么指数呢?
算法 | 老思想 | 新思想 |
加法 | 重复计数 | 滑移 |
乘法 | 重复相加 | 尺度缩放 |
指数法 | 重复相乘 | 随时间的增长 |
举一个具体的例子,对于指数32,可以用以下的步骤进行分析(这可能是个笨办法,但对于理解问题有益):
- 设定初始值为1个单位量(指数前面的因子,指数32前面的因子为1,指初始值为1个单位数量,即1·32,因为乘以1不影响结果,所以省略不写了,但是要知道它的存在)(original)
- 设定每增长1个单位时间,量就增长到1个单位时间前的3倍(即指数的底数)(growth)
- 设定增长时间2个单位时间(即指数的幂)(duration)
对于以上过程,在数学上可以给出通式:
或者
就拿上面的32的例子来说,底数growth=3指的是单位时间数量增长的倍数(或称为增长倍率);而幂duration=2指的是数量增长的时间;original=1为初始数量。
对指数的这种“增长”的理解不同于乘法的尺度缩放,乘法会给你一个非常明确的尺度因子,你一眼就可以看出其会将初始数量缩放到一个什么样的尺度上去。但是对于指数,就没有一个这样明显的缩放因子,因为它代表的是一种“增长”,相比于乘法(直接缩放得到结果),指数更强调“过程”。这个思想很重要,因为自然界中大多数事物都处在一种“无意识的增长”当中!
例如,细菌并不会计划着自己一天分裂一次,它只会以其自己的方式进食并增长、分裂,而且初值的细菌数量越多,其总量的增长速度也就越快,初始数量就体现在上式的“original”中,初始值对最终结果的影响表现为尺度上的缩放,即乘法的算法思想。
为了得到它们增长的最终结果,我们需要知道它们当前的增长倍率以及增长的时间。所以指数操作就可以用简单一句话概括:“以某个初始数量(original)为起点,以一定的增长倍率(growth)开始增长,等到了设定的时间(duration)看看增长到了多少(new)”。
就前面提到的分数幂问题,可以用新的算法思想进行解释。例如21.5,既然21表示初始值为1,单位时间增长率为2,增长1个单位时间后的值;22表示初始值为1,单位时间增长率为2,增长2个单位时间后的值。那么,21.5当然就可以理解为初始值为1,单位时间增长率为2,增长1.5个单位时间后的值了。如果能将这个概念告诉斯蒂菲尔(Michael Stifel),或许他将会成为发现对数的第一人吧,因为他正是因为那个时代的人们还无法理解分数幂的概念而放弃了对“对数概念”的进一步探究。
现在考虑一种情况,就是如果两次增长率相同的增长“无缝连接”,即一次增长紧接着上一次增长,例如,以单位数量为初始值,以一定的倍率增长,先增长2个单位时间,再在此基础上增长3个单位时间,问题就可以用下式表示:
实际上和以单位数量为初始值,以一定的倍率增长,一共增长5个单位时间所得到结果是等价的。写成通式就是:
这就底数相同(即增长率相同)的指数的乘法法则,即同底指数相乘等于底数不变,幂相加。
假设现在初始值为1个单位数量,增长率为a,那么增长3个单位时间后的结果为:a3。
那么,对于上面的情况,其中间时刻(1.5个单位时间时)的数量是a1.5。
如果重复两次1.5个单位时间的增长,并运用上面说过的指数相乘运算方法,会发现:
用一句话描述就是“半个周期的增长结果乘以半个周期的增长结果等于全周期的增长结果”。这也意味着半个周期的增长结果是全周期增长结果的平方根。即,增长时间减半相当于开平方操作。
那么,如果将时间等分为3份,得到的将是:
显然,得到结论是1/3个周期的增长结果是全周期增长结果的3次方根。可以想象得到,如果将增长时间等分为n等份,那么1/n个周期的增长结果将是全周期增长结果的n次方根。
如果将幂视作时间,那么负的时间直观上其实就可以理解为“时光倒流”。如果正常情况是以一定增长倍率增大,那么“时光倒流”就指的是以一定的倍率缩小。
上式指的就是:“一个单位时间前的数量是当前数量的(1/2)”。其实,在指数函数2x的图像中中任意间隔单位时间的两个点都满足上面的比例关系。
那么,当幂为0代表什么?先举个例子,例如30的意义。它可以解释为:初始量为1个单位数量,增长倍率为3,增长了0个单位时间。也就是说,没有给其增长的机会(时间),数量当然保持着原样,即为1个单位数量或直接写成1。其他情况(除了底数为0的特殊情况,下面单独讨论)都可以用这样的方法解释。
即指数的底数为零的情况。表示的是初始量为1个单位数量,增长倍率为0,增长了x个单位时间。可以理解为一旦给其时间增长,就会变成0。如果无法一下理解就先假设x=1,即01,表示的是1个单位时间后会变为0,那么就可以将1个单位时间分为n个等份,其中n→∞,那么01/n为01的n次方根,当然也为0,所以,无论幂1/n多么小或者说无论增长时间多么短,只要幂不为零,底数为零的指数都为零!
0的0次方,这个现在终于可以解释了。表示的是初始量为1个单位数量,增长倍率为0,增长了0个单位时间。虽然上面说了只要给其增长的时间,它就为零,但是现在的情况是:并没有给初始值发生这种增长的机会!所以,不管以多少倍率增长其实都无从谈起,任何形式的增长都没有发生,最终结果就是初始值1个单位数量或直接写为1,即00=1。
Reference
[1] Michael Stifel, https://en.wikipedia.org/wiki/Michael_Stifel
[2]Understanding Exponents (Why does 0^0 = 1?) https://betterexplained.com/articles/understanding-exponents-why-does-00-1/
(Sample picture source:betterexplained.com)