在刚开始学习算术的时候,老师会教我们通过数指头的方法来完成加法的计算(例如
),以及通过重复加法来实现乘法计算例如(
)(当然有的老师只会教乘法表…)。不过不管怎么说,这一切看起来似乎都挺自然的。
但上述方法当然也只是针对简单或者说特殊的情况,当包含有负数或者无理数的时候呢,这种方法显然就行不通了。加减乘除本身并没有问题,问题在于对算法的理解上太狭隘,不具有普适性。
为了使算法的定义具有普适性,不应单纯地用计数来实现加法,而是将其看做是在一条直线(数轴)上点的位置变化。这种位置可以是负的(如
),可以是在某些数之间(例如无理数),或者是在其他的维度上(例如虚数
,详情请见“虚数 i 是真实存在的吗?还是被人们创造出的数学工具?”)。
那么,更加广义的算法思想应当是:将加法视为是一种在数轴上的“滑移”,例如:
就是向右滑移
个单位。乘法就是“缩放”,例如:
就是扩展到原来的
倍。
那么指数呢?
算法 狭义定义 广义定义
加法重复计数 滑移
乘法重复相加 尺度缩放
指数重复相乘 随时间的增长
关键词:随时间的增长!随时间的增长!随时间的增长!(重要的话说三遍)、
举一个具体的例子,对于指数
,可以用以下的步骤进行分析(这可能是个笨办法,但对于理解问题有益):
设定初始值为
个单位量(指数前面的因子,指数
前面的因子为
,指初始值为
个单位数量,即
,因为乘以
不影响结果,所以可以省略不写了,但是要知道它的存在),将其记为:【
】。
设定每增长
个单位时间,量就增长到
个单位时间前的
倍(即指数的底数),将其记为:【
】。
设定增长时间
个单位时间(即指数的幂),将其记为:【
】。
对于以上过程,在数学上可以给出通式,其中【
】为指数运算的结果:
或者写为:
就拿上面的
的例子来说,底数
指的是单位时间数量增长的倍数(或称为增长倍率);而幂
指的是数量增长的时间;
为初始数量。
对指数的这种“增长”的理解不同于乘法的尺度缩放,乘法会给你一个非常明确的尺度因子,你一眼就可以看出其会将初始数量缩放到一个什么样的尺度上