全プロセスの詳細解説
-
a½ とは何か、そして誰がそれを決めたのか? このツールが扱うのは整数の指数だけです。しかし、a⁰ の意味を強制した規則はそこでは止まりません。では、その規則が 1/2 に対してどのような意味を要求するのかを導き出してみましょう。
-
ツールの三行目に示されている法則から出発し、目で確認できる例を使って確かめてみてください。累乗をさらに累乗すると、指数は掛け合わされます。
-
今度はその同じ法則に、指数を 1/2、外側の累乗を 2 にして当てはめてみます。右辺は a¹ となり、つまり a のことです。
-
これが何を意味しているのか読み解いてみましょう。a½ とは、2乗すると a になる数、つまり平方根のことです。ここで新たな定義は何も行われていません。法則が他の解釈の入り込む余地を残さなかったのです。
-
全く同じ手順で、すべての累乗根が定まります。外側の累乗を 3 にすれば、3乗して a になる数が得られます。
-
そして、さらなる規則を付け足すことなく、分数の指数も解決します。16 の 3/2 乗は、平方根の 3乗であるか、3乗の平方根であるかのどちらかですが、法則はこれらが一致すると告げています。4³ も √4096 も、ともに 64 です。
-
ここで問題になるのは代数計算ではなく、どの根を選ぶのかという点です。−8 には −2 という実数の立方根が一つあり、さらに二つの複素数の立方根も存在します。三つのプログラムに計算させると、三つの異なる答えが返ってくるでしょう。実数の慣例に沿った −2、JavaScript が返す NaN、そして代わりに主値を取る Python が出力する 1 + i√3 です。
解答
a^(1/q) が a の q乗根になることは、a⁰ = 1 を強制したのと同じ法則によって必然的に導かれます。整数と分数の間で、新たな定義は一切作られていません。分数の指数が整数の指数のすべての規則に従うのはそのためです。純粋に選択の余地があるのは、ある数が複数の q乗根を持つときにどれを指すのかという点だけであり、(−8)^(1/3) をめぐる意見の不一致はすべてこの選択に起因します。正の底については正の根が一つだけ存在し、議論の余地はありません。教科書が分数の指数の法則を a > 0 として提示し、負の数のケースを複素数の章に委ねているのはこのためです。
-
参考文献 (2)
- Where the two answers at 0⁰ come from, and why neither camp is careless: Donald E. Knuth, "Two Notes on Notation", The American Mathematical Monthly 99(5), 403–422, 1992. doi:10.2307/2325085
- What the machines named in the same block actually do, measured rather than assumed: Measured in this repo: Node 22 gives Math.pow(0,0) = 1 and 0 ** 0 = 1; CPython gives 0 ** 0 = 1 and (-8) ** (1/3) = 1 + i√3, while JavaScript's Math.pow(-8, 1/3) is NaN. Asserted in scripts/check-compute.mjs.