冪(べき、power, exponentiation)あるいは冪乗(べきじょう)、累乗(るいじょう) とは、ある一つの数同士を繰り返し掛け合わせるという操作のこと、あるいはそれによって得られる数のことである。
「冪」 の文字はもともと 「覆う、覆うもの」 という意味の漢字である。江戸時代の和算家は略字として「巾」を用いた[1]。常用漢字・当用漢字に含まれなかったことから1950年代以降、出版物などでは仮名書きまたは「累乗」への書き換えが進められた。結果として初等数学の教科書ではもっぱら「累乗」が用いられ、「冪」や「冪乗」という用語は排除されたが、一方で「降べき順」「昇べき順」というような用語の一部としては残ったままになっている。
目次
1 定義
2 指数の拡張と指数法則
2.1 指数関数
3 効率的な演算法
3.1 下位桁から計算する方式
3.2 上位桁から計算する方式
4 注
5 関連項目
//
実数全体の集合や群など、積の定義された集合 X の元 x と自然数 n に対し、X の新たな元 xn を n 個の x を掛け合わせものと定義して、これを x の n 乗と呼ぶ[2]。冪乗 xn に対して、x は底(てい、base、基数; 基準となるもの)と呼ばれ、n は冪指数または単に指数(しすう、exponent)と呼ばれる。また、底 x を固定し、冪指数 n を任意の自然数にわたって動かすときに得られる数を総称して、x を底とする冪乗、または単に x の冪と呼ぶ。また、必ずしも冪指数とは限らない添字 n を主たる文字 x の右肩に乗せる添字記法を指数表記とよぶばあいがある。
冪乗は以下のように帰納的に定めることも可能である:
x1 = x,
xn+1 = xn × x (n ≧1).
集合と写像の言葉で言えば、N を自然数全体の成す集合としたとき、冪乗とは写像N × X → X; (n, x) → xn
のことである。このとき、指数 n を固定して、x を変数とする写像 X → X; x → xn を考えることができる。このような関数を総称して(X 上の)冪写像あるいは冪関数と呼ぶ。あるいは底 x を固定して N から X への写像 n → xn も考えられる。これは後述するような指数の拡張に伴い定義域を拡張できる場合がある。
x の 2 乗、3 乗は特に、それぞれ x の平方(へいほう、square)、立方(りっぽう、cube)と呼ぶ。この呼び名はそれぞれ、「正方形」、「立方体」の「方」、「立方」と同じものである。2 乗を自乗ということもある。
x が逆元 x-1 をもつならば、自然数 n に対しx-n = (x-1)n
と定義し、また x0 を乗法に関する単位元と定義することによって、x を底とする冪乗の指数を整数の範囲まで拡張することができる。
同様に、自然数 m に対し、x の m 乗根すなわち m 乗して x になるような数 y がただ一つあるならば、その y を x1/m とし、自然数または整数 n に対しxn/m = (x1/m)n
と定めることによって、x を底とする冪乗の指数を有理数の範囲まで拡張することができる。 このとき、指数法則と呼ばれる以下の関係式が成り立つ。
xr+s = xr × xs 。
xr×s = (xr)s 。
ここで、r と s は、冪乗が定義できる範囲の有理数である。つまり、x が逆元をもたないなら自然数、逆元はもつが冪根をもたないなら整数、m 乗根をもつが逆元をもたないならば m を分母とする正の有理数、逆元も m 乗根ももつならば m を分母とする有理数である。また、x と y が積 × について可換ならば
(x × y)r = xr × yr
が各項がきちんと定義されるような有理数 r に対して成り立つ。これも指数法則と呼ばれることがある。
なお、考えている集合が、単位元をもつ・積が可換な環構造をもつならば、その和 + について、指数が自然数 n であるような冪(x + y)n
は二項定理に従う。
上で述べたことを x が実数の範囲で考えてみると、x が 0 でないならば 1/x が x の逆元であるから、x-n = (1/x)n = 1/xn 。
また、x が正の数であれば任意の自然数 m に対する正の m 乗根 m√x がただ一つだけ存在するから、任意の有理数 n/m に対し
となる。
a が正の実数のとき、a を底とする冪乗の指数が有理数の範囲全体で定義されたことになる。このとき、a の冪乗はその指数に関して単調性をもつので、実数全体の集合 R における有理数の稠密性から、これは R 上で定義された連続関数に一意的に拡張される。これを a を底とする指数関数と呼ぶ。
コンピュータ上で冪乗演算を行なう効率的な演算方法としてバイナリ法(二進数法)とも呼ばれる演算方法を示す。
RSA暗号や確率的素数判定法であるフェルマーテストなどによって、指数として巨大な自然数を扱うことが多くなった。この方法を使うと、指数となる自然数がいかに巨大であっても高々そのビット数の2倍の回数の乗算で算出することが可能になり、繰り返し掛けるよりも大幅に効率がよくなる。特にRSA暗号やフェルマーテストなどにおいて各演算後に必要となる剰余演算(一般に最も計算時間がかかる)の回数を減らす効果がある。
バイナリ法では、次の性質を利用する。(ax)2 = a2x
例えば (a8)2 = a16 である。したがって、a(すなわち a1)から始めて2乗を繰り返すとこうなる。a1 → a2 → a4 → a8 → a16 → a32 → …
これらの数のうち、適切なものを選んで掛け合わせれば、任意の累乗を速く(すなわち少ない乗算回数で)計算することができる。例えば a43 は、上で示した指数法則によって、a43 = a32+8+2+1 = a32×a8×a2×a1
として計算することができる(乗算回数は 8 回で済むので、a を 42 回繰り返し掛け合わせるのに比べて効率がよい)。
(十進表記): a1a2a4a8a16a32
2乗の繰返し(二進表記): a1→a10→a100→a1000→a10000→a100000
↓↓ ↓ ↓
累乗の計算(二進表記): a1→a11→→→→a1011→→→→→a101011
=a43
コンピュータのアルゴリズムとして書くとこうなる。
指数 n を二進表記したものを n とし、n の最下位桁を n[0]、最上位桁を n[m]、最下位から数えて k 桁目を n[k] と表記する。
2乗していく値 p := a とし、結果値 v := 1 とする。
k := 0 とする(最下位)。