幂

底数$b$ 与 指数$n$

在数学中，乘方或幂法是重复连乘的运算，幂是乘方的结果；由此，若 $n$ 为正整数，$n$ 个相同的数 $b$ 连续相乘（即 $b$ 自乘 $n$ 次），就可将 $b^n$ 看作乘方的结果 ——“幂”。

$$b^n = \underbrace{b \times \cdots \times b}_n$$

在精确的定义上，乘方与幂不同，例如：“幂的乘方”是指几个相同的幂相乘，$(b^m)^n$ 即“幂 $b^m$ 再做 $n$ 次乘方”。此外，在汉语命名上，乘方与开方相对，两者互为逆运算。乘方在古代原本指正整数次的自身连乘，当 $n$ 不为正整数时，“乘方”则有了衍伸的定义，即“乘幂”：将某个量或符号提升到任意指定次幂或对它施加一个指定指数的行为或过程。

乘幂或幂运算，又称指数运算、取幂，如上述，与乘方一样是数学运算，表达式为 $b^n$，读作“$b$ 的 $n$ 次方”或“$b$ 的 $n$ 次幂”。其中，$b$ 称为底数，而 $n$ 称为指数，通常指数写成上标，放在底数的右边。

此外，次幂与幂次的语义区别如下：次幂侧重“运算结果”，是一个数自乘若干次后所得到的乘方结果。幂次侧重“指数的值”，是特指位于右上角的指数本身，即自乘了多少次。例如：在 $2^3=8$ 中，8 是 2 的三“次幂”，而 3 是 2 的“幂次”。

当乘幂的指数 $n$ 为 1 时，通常不写出来，因为运算出的值和底数的数值一样；指数为 2 时，另可读作“$b$ 的平方”；指数为 3 时，另可读作“$b$ 的立方”。乘幂在纯文字格式等不能用上标的情况，例如在编程语言或电子邮件中，$b^n$ 通常写成 b^n 或 b**n；也可视为超运算，记为 b3n；亦可以用高德纳箭号表示法，写成 b↑n。

## 幂概念的指数范围拓展与数学定义

由于在十进制中，十的幂很容易计算，只需在后面加零即可，所以科学记数法借此简化记录的数字；二的幂则在计算机科学中相当重要。

在代数学中，为了使幂运算在逻辑上保持自洽，任何数 $b$ 的 $n$ 次幂，都可视为或等同于： 1 乘以“$n$ 个底数 $b$ 的连乘积”（此处 1 为乘法单位元）。基于这一核心逻辑，指数可以自然地推广至零和负数的情况。

- 当指数 $n$ 为正整数时，$b^n=1 \cdot b^n$ 很容易理解。
- 然而，当指数 $n$ 为 0，造成“0 个 $b$ 自乘”，也不会导致“没有数自乘”却得到结果是 1，而不是 0 的疑惑。因为既然一个 $b$ 都没有，那幂运算根本没有发生，结果自然保持原状，也就是 1。此 $b^0=1$，是幂运算的第一原理。
- 当“负 $n$ 个 $b$ 自乘”时，正负指数就变成了方向相反的一对算子，指数 $-n$ 等价于：1 乘以“$n$ 个底数的乘法逆元（倒数）的连乘积”。即：1 重复除以底数 $n$ 次。

$$b^{0} = 1 \qquad (b \ne 0)$$

$b^{-n} = {1 \over \underbrace{b\times\cdots\times b}_n} = \frac{1}{b^n} = \left(\frac{1}{b}\right)^{n} \qquad (b \ne 0)$。

若以分数为指数的幂，则定义：

$b^{\frac{n}{m}} = \sqrt[m]{b^{n}}$。

即 $b$ 的 $n$ 次方再开 $m$ 次方根。

0的0次方（$0^0$）目前没有数学家给予正式的定义；在部分数学领域中，如组合数学，常用的惯例是定义为 1。

此外，当 $n$ 是复数，且 $b$ 是正实数时。

$$b^n = \exp(n \ln(b))$$

exp 是指数函数，而 ln 是自然对数。

## 重要的恒等式

### 运算法则

- 同底数幂相乘，底数不变，指数相加：

$$a^m \times a^n = a^{m + n}$$

- 同底数幂相除，底数不变，指数相减：

$$a^m \div a^n = a^{m - n}$$

- 同指数幂相除，指数不变，底数相除($b$不为0)：

$$\frac{a^n}{b^n} = \left(\frac{a}{b}\right)^n$$

### 其他等式

- $$x^\frac{m}{n} = \sqrt[n]{x^m}$$
- $$x^{-m} = \frac{1}{x^m} \qquad (x \ne 0)$$
- $$x^0 = 1 \qquad (x \ne 0)$$
- $$x^1 = x\,\!$$
- $$x^{-1} = \frac{1}{x} \qquad (x \ne 0)$$

## 运算律

加法和乘法存在交换律，比如：$2+3=5=3+2$，$2 \times 3 =6 =3 \times 2$，但是幂的运算不存在交换律，$2^3 = 8$，但是$3^2 = 9$。

同样，加法和乘法存在结合律，比如：$(2+3)+4=9=2+(3+4)$，$(2 \times 3) \times 4=24=2 \times (3 \times 4)$。不过，幂运算没有结合律：$(2^3)^4 = 8^4 = 4096$，而$2^{(3^4)} = 2^{81} = 2,417,851,639,229,258,349,412,352$，所以$(2^3)^4\neq 2^{(3^4)}$。

但是幂运算仍然有其运算律，称为指数律：

- $$a^m \cdot a^n = a^{m+n}$$
- $$\frac{a^m}{a^n} = a^{m-n}$$
- $$(a^m)^n = a^{mn}$$
- $$\sqrt[n]{a^m} = a^{\frac{m}{n}}$$
- $$a^n \cdot b^n = (a \cdot b)^n$$
- $$\frac{a^n}{b^n} = \left(\frac{a}{b}\right)^n$$

## 整数指数幂

整数指数幂的运算只需要初等代数的知识。

### 正整数指数幂

表达式$a^2 = a\cdot a$被称作$a$的平方，因为边长为$a$的正方形面积是$a^2$。

表达式$a^3 = a\cdot a\cdot a$被称作$a$的立方，因为边长为$a$的正方体体积是$a^3$。

所以$3^2$读作“3的平方”，$2^3$读作“2的立方”。

指数表示的是底数反复相乘多少次。比如$3^5 = 3\times 3\times 3\times 3\times 3 = 243$，指数是5，底数是3，表示3反复相乘5次。

或者，整数指数幂可以递归地定义成：

$$a^n= \begin{cases} 1 & (n= 0) \\ a \cdot a^{n-1} & (n> 0) \\ \left(\frac{1}{a}\right)^{-n} & (n< 0) \end{cases}$$

### 指数是1或者0

注意$3^1$表示仅仅1个3的乘积，就等于3。

注意$3^5 = 3\times 3^4$，$3^4 = 3\times 3^3$，$3^3 = 3\times 3^2$，$3^2=3\times 3^1$。

继续，得到$3^1 = 3\times 3^0 = 3$，所以$3^0 = 1$

另一个得到此结论的方法是：通过运算法则$\frac{x^n}{x^m} = x^{n - m}$

当$m=n$时，$1 = \frac{x^n}{x^n} = x^{n - n} = x^0$

- 任何数的1次方是它本身。

### 零的零次方

$0^0$ 其实还并未被数学家完整的定义，但部分看法是$0^0 = 1$，在程式语言中（python） $0**0 = 1$

在这里给出这一种极限的看法

$$\lim _{x \to 0^+} x ^ x= 0^0$$ 于是，可以求出 x 取值从 1 到 0.0000001 计算得到的值，如图

### 负数指数

我们定义任何不为 0 的数 a 的 -1 次方等于它的倒数。

$$a^{-1} = \frac{1}{a}$$

对于非零$a$定义

$a^{-n} = \frac{1}{a^n}$,

而$a=0$时分母为 0 没有意义。

证法一：

根据定义$a^m\cdot a^n = a^{m+n}$，当$m=-n$时

$$a^{-n} \, a^{n} = a^{-n\,+\,n} = a^0 = 1,$$

得$a^{-n} \, a^{n} = 1$, 所以$a^{-n} = \frac{1}{a^{n}}$。

证法二：

通过运算法则$\frac{a^m}{a^n} = a^{m - n}$

当$m=0$时，可得$a^{-n} = a^{0-n} = \frac{a^0}{a^n} = \frac{1}{a^{n}}$

负数指数$a^{-n}$还可以表示成1连续除以$n$个$a$。比如：

$3^{-4} = \frac{\frac{\frac{\frac{1}{3}}{3}}{3}}{3} = \frac{1}{81} = \frac{1}{3^{4}}$.

### 特殊数的幂

#### 10的幂

在十进制的计数系统中，10的幂写成1后面跟着很多个0。例如：$10^3 = 1000,\ 10^{-3} = 0.001$

因此10的幂用来表示非常大或者非常小的数字。如：299,792,458（真空中光速，单位是米每秒），可以写成 $2.99792458\times 10^8$，近似值 $2.998\times 10^8$ 或 $3\times 10^8$

国际单位制词头也使用10的幂来描述特别大或者特别小的数字，比如：词头“千”就是 $10^3$，词头“毫”就是 $10^{-3}$

#### 1的幂

1的任何次幂都为1。

#### 0的幂

0的正数幂都等于0。

0的负数幂没有定义。

任何非0之数的0次方都是1；而0的0次方是悬而未决的，某些领域下常用的惯例是约定为1。但某些教科书表示0的0次方为无意义。也有人主张定义为1。

#### 负1的幂

-1的奇数幂等于-1

-1的偶数幂等于1

### 指数非常大时的幂

一个大于1的数的幂趋于无穷大，一个小于-1的数的幂趋于负无穷大

当$a > 1$，$n \to \infty$，$a^n \to \infty$

当$a < -1$，$n \to \infty$，$a^n \to -\infty$ 或 $\infty$ , (视乎n 是奇数或偶数)

一个绝对值小于1的数的幂趋于0

当$|a| < 1$，$n \to \infty$，$a^n \to 0$

1的幂永远都是1

当$a = 1$，$n \to \infty$，$a^n \to 1$

如果数a趋于1而它的幂趋于无穷，那么极限并不一定是上面几个。一个很重要的例子是：

当$n \to \infty, \left(1+\frac{1}{n}\right)^n \to e$

参见e的幂

其他指数的极限参见幂的极限

## 正实数的实数幂

一个正实数的实数幂可以通过两种方法实现。

- 有理数幂可以通过N次方根定义，任何非0实数次幂都可以这样定义
- 自然对数可以被用来通过指数函数定义实数幂

### N次方根

<image>

一个数$a$的$n$次方根是$x$，$x$使$x^n=a$。

如果$a$是一个正实数，$n$是正整数，那么方程$x^n=a$只有一个正实数根。

这个根被称为$a$的$n$次方根，记作：$\sqrt[n]{a}$，其中$\sqrt{\ }$叫做根号。或者，$a$的$n$次方根也可以写成$a^{\frac{1}{n}}$.

例如$4^{\frac{1}{2}} = 2,\ 8^{\frac{1}{3}} = 2$

当指数是$\frac{1}{2}$时根号上的2可以省略，如：$\sqrt{4}=4^{\frac{1}{2}}= \sqrt[2]{4} = 2$

### 有理数幂

有理数指数幂定义为

$$a^{\frac{m}{n}} = (a^m)^{\frac{1}{n}} = \sqrt[n]{a^m}$$

### e的幂

这个重要的数学常数e，有时叫做欧拉数，近似2.718，是自然对数的底。它提供了定义非整数指数幂的一个方法。

它是从以下极限定义的：

$$e =\lim_{n \to \infty} \left(1+\frac{1}{n} \right)^n$$

指数函数的定义是：

$$e^x =\lim_{n \to \infty} \left(1+\frac{x}{n} \right)^n$$

可以很简单地证明e的正整数k次方$e^k$是：

$$e^k = \left[\lim_{n \to \infty} \left(1+\frac{1}{n} \right) ^n\right]^k$$

$$= \lim_{n \to \infty} \left(1+\frac k {n\cdot k} \right)^{n \cdot k}$$

$$= \lim_{n \cdot k \to \infty} \left(1+\frac k {n\cdot k} \right)^{n \cdot k}$$

$$= \lim_{m \to \infty} \left(1+\frac k m \right)^m$$

### 实数指数幂

<image>

因为所有实数可以近似地表示为有理数，任意实数指数x可以定义成：

$$b^x = \lim_{r \to x} b^r,$$

例如：

$$x \approx 1.732$$

于是

$$5^x \approx 5^{1.732} =5^{\frac{433}{250}}=\sqrt[250]{5^{433}} \approx 16.241$$

实数指数幂通常使用对数来定义，而不是近似有理数。

自然对数$\ln{x}$是指数函数$e^x$的反函数。

它的定义是：对于任意$b>0$，满足

$$b = e^{\ln b}$$

根据对数和指数运算的规则：

$$b^x = (e^{\ln b})^x = e^{x \cdot\ln b}$$

这就是实数指数幂的定义：

$$b^x = e^{x\cdot\ln b}\,$$

实数指数幂$b^x$的这个定义和上面使用有理数指数和连续性的定义相吻合。对于复数，这种定义更加常用。

## 负实数的实数幂

如果$a$是负数且$n$是偶数，那么$x = a^n$是正数。如果$a$是负数且$n$是奇数，那么$x = a^n$是负数。

使用对数和有理数指数都不能将$a^k$（其中$a$是负实数，$k$实数）定义成实数。在一些特殊情况下，给出一个定义是可行的：负指数的整数指数幂是实数，有理数指数幂对于$a^\frac{m}{n}$（$n$是奇数）可以使用$n$次方根来计算，但是因为没有实数$x$使$x^2 = -1$，对于$a^\frac{m}{n}$（$n$是偶数）时必须使用虚数单位$i$。

使用对数的方法不能定义$a\leq 0$时的$a^k$为实数。实际上，$e^x$对于任何实数$x$都是正的，所以$\ln(a)$对于负数没有意义。

使用有理数指数幂来逼近的方法也不能用于负数$a$因为它依赖于连续性。函数$f(r) = a^r$对于任何正的有理数$a$是连续的，但是对于负数$a$，函数$f$在有些有理数$r$上甚至不是连续的。

例如：当$a=-1$，它的奇数次根等于-1。所以如果$n$是正奇数整数，$-1^{\frac m n}=-1$当$m$是奇数，$-1^{\frac m n}=1$当$m$是偶数。虽然有理数$q$使$-1^q=1$的集合是稠密集，但是有理数$q$使$-1^q=-1$的集合也是。所以函数$-1^q$在有理数域不是连续的。

因此，如果要求负实数的任意实数幂，必须将底数和指数看成复数，按复数的正实数幂或复数的复数幂方法计算。

## 正实数的复数幂

### e的虚数次幂

<image>

复数运算的几何意义和e的幂可以帮助我们理解$e^{ix}$（$x$是实数），即纯虚数指数函数。想象一个直角三角形$(0,1,1+\frac{ix}{n})$（括号内是复数平面内三角形的三个顶点），对于足够大的$n$，这个三角形可以看作一个扇形，这个扇形的中心角就等于$\frac{x}{n}$弧度。对于所有$k$，三角形$(0,(1+\frac{ix}{n})^k, (1+\frac{ix}{n})^{k+1})$互为相似三角形。所以当$n$足够大时$(1+\frac{ix}{n})^n$的极限是复数平面上的单位圆上$x$弧度的点。这个点的极坐标是$(r,\theta)=(1,x)$，直角坐标是$(\cos x,\sin x)$。所以$e^{ix} = \cos x + i \sin x$，而这个函数可以称为纯虚数指数函数。这就是欧拉公式，它通过复数的意义将代数学和三角学联系起来了。

等式$e^z = 1$的解是一个整数乘以$2i\pi$：

$$\{ z : e^z = 1 \} = \{ 2k\pi i : k \in \mathbb{Z} \}.$$

更一般地，如果$e^b = a$，那么$e^z = a$的每一个解都可以通过将$2i\pi$的整数倍加上$b$得到：

$$\{ z : e^z = a \} = \{ b + 2k\pi i : k \in \mathbb{Z} \}.$$

这个复指数函数是一个有周期$2i\pi$的周期函数。

更简单的：$e^{i\pi} = -1;\ e^{x + iy}= e^x(\cos y + i \sin y )$。

### 三角函数

根据欧拉公式，三角函数余弦和正弦是：

$$\cos z = \frac{ e^{i\cdot z} + e^{-i\cdot z}} {2} \qquad \sin z = \frac{e^{i\cdot z} - e^{-i\cdot z}}{2\cdot i}$$

历史上，在复数发明之前，余弦和正弦是用几何的方法定义的。上面的公式将复杂的三角函数的求和公式转换成了简单的指数方程

$$e^{i\cdot (x+y)}=e^{i\cdot x}\cdot e^{i\cdot y}.\,$$

使用了复数指数幂之后，很多三角学问题都能够使用代数方法解决。

### e的复数指数幂

$e^{x+iy}$可以分解成$e^x\cdot e^{iy}$。其中$e^x$是$e^{x+iy}$的模，$e^{iy}$决定了$e^{x+iy}$的方向

### 正实数的复数幂

如果$a$是一个正实数，$z$是任何复数，$a^z$定义成$e^{z\cdot \ln(a)}$，其中$x=\ln (a)$是方程$e^x = a$的唯一解。所以处理实数的方法同样可以用来处理复数。

例如：

$$2^i = e^{i\cdot \ln(2)} = \cos{\ln 2}+i\cdot \sin{\ln 2 } = 0.7692+0.63896i$$

e^i

10^i

$$(e^{2\pi})^i = 535.49^i = 1$$

## 复数的复数幂

### 复数的虚数幂

让我们从一个简单的例子开始：计算$\left( 1+i \right)^i$。

$$\begin{align} \left( 1+i \right)^i & = \left[\sqrt{2}\left(\frac{\sqrt{2}}{2}+\frac{\sqrt{2}}{2} i\right)\right]^i \\ & = \left(\sqrt{2}e^{\tfrac{\pi}{4}i}\right)^i \\ & = e^{-\tfrac{\pi}{4}}\sqrt{2}^i \\ & = e^{-\tfrac{\pi}{4}}\cos\frac{\ln 2}{2} + ie^{-\tfrac{\pi}{4}}\sin\frac{\ln 2}{2} \\ \end{align}$$

其中$\sqrt{2}^i$的得法参见上文正实数的复数幂

### 复数的复数幂

类似地，在计算复数的复数幂时，我们可以将指数的实部与虚部分开以进行幂计算。例如计算$\left( 1+i \right)^{2+i}$：

$$\begin{align} \left( 1+i \right)^{2+i} & = \left( 1+i \right)^2 \left( 1+i \right)^i \\ & = 2ie^{-\tfrac{\pi}{4}}\left(\cos\frac{\ln 2}{2} + i\sin\frac{\ln 2}{2}\right) \\ & = -2e^{-\tfrac{\pi}{4}}\sin\frac{\ln 2}{2} + 2ie^{-\tfrac{\pi}{4}}\cos\frac{\ln 2}{2} \\ \end{align}$$

### 一般情况

复数的复数幂必须首先化为底数为$e$的形式：

$$w^z = e^{z \ln w}$$

又，由复数的极坐标表示法：

$$w = r e^{i\theta}$$

故

$w^z = e^{z \ln(w)} = e^{z(\ln(r) + i\theta)}$。

然后，使用欧拉公式处理即可。

由于复数的极坐标表示法中，辐角$\theta$的取值是具有周期性的，因此复数的复数幂在大多数情况下是多值函数。不过实际应用中，为了简便起见，辐角都只取主值，从而使幂值唯一。

## 在函数中

当函数名后有上标的数（即函数的指数），一般指要重复它的运算。例如$f^3 (x )$即$f ( f ( f ( x ) ) )$。特别地，$f^{-1} (x )$指$f (x )$的反函数。

但三角函数的情况有所不同，一个正指数应用于函数的名字时，指答案要进行乘方运算，而指数为-1时则表示其反函数。例如：$(\sin x)^{-1}$表示$\csc x$。因此在三角函数时，使用$\sin^{-1} x$来表示$\sin x$的反函数$\arcsin x$。

## 计算自然数（正整数）$n$的$a^n$的算法

最快的方式计算$a^n$，当$n$是正整数的时候。它利用了测试一个数是奇数在计算机上是非常容易的，和通过简单的移所有位向右来除以2的事实。

在C/C++语言中，你可以写如下算法：

```c
double power(double a, unsigned int n)
{
    double y = 1;
    double f = a;
    while (n > 0) {
       if (n % 2 == 1) y *= f;
       n >>= 1;
       f *= f;
    }
    return y;
}
```

此算法的时间复杂度为$\Omicron(\log n)\!$，比普通算法快（a自乘100次，时间复杂度为$\Omicron(n)\!$），在$n$较大的时候更为显著。

例如计算$a^{100}$，普通算法需要算100次，上述算法则只需要算7次。若要计算$a^{n} (n < 0)$可先以上述算法计算$a^{|n|}$，再作倒数。

## 基本资料

- 日语原文：记号
- variant1 caption：底数$b$ 与 指数$n$