冪乗の計算順序

2008年07月24日


冪乗は右から左に

Baayen のRによる言語統計分析の入門書を読んでて、次のような内容に目が止まった。

Note that the evaluation of exponentiation peoceeds from right to left, rather than from left to right. (Baayen 2008:3)
(訳)指数計算の評価は左から右ではなくて、右から左の順にすすめられることに注意せよ。

どういうことかというと、以下のように冪乗(累乗)が繰り返されるとき、右の冪乗から計算されるということだ。なお、サーカムフレックス(^)は冪乗を表す記号だ。

9 ^ 0.5 ^ 3
上の式は、括弧をつけて表示すれば、
9 ^ (0.5 ^ 3) = 9 ^ 0.125 = 1.31607401
のように右から左の順に評価され、
(9 ^ 0.5) ^ 3 = 3 ^ 3 = 27
のように左から右の順にはならないということだ。

他の演算記号の場合

それにしても、何で、わざわざ“note that...”(・・・に注意せよ)と言っているのだろうか。

その理由は、おそらく、他の演算記号が、冪乗と違って、左から右に計算しているためなんだと考えられる。例えば、除算の場合、

24 ÷ 4 ÷ 2
と出てきたときには、
(24 ÷ 4) ÷ 2 = 12 ÷ 2 = 6
と計算しなければいけない。冪乗のように、右の方から、
24 ÷ (4 ÷ 2) = 24 ÷ 2 = 12
というように計算したら間違いになる。

減算の場合も、

5 - 1 - 3
は、
(5 - 1) - 3
であって、
5 - (1 - 3)
としてはならない(もっともこの手の間違いは、中高生でもよく犯すが)。

で、上のように引き算やら割り算といったよく使う計算方式が、左から右に進むから、冪乗もそれと同じでしょ、と間違える人が多いから、冒頭のような注意ができたんでしょう。

結合法則

加法や乗法の場合は、結合法則がなりたつので、左から計算しようと右から計算しようと構わない。つまり、

(5 + 1) + 3 = 5 + (1 + 3)
となるので、
5 + 1 + 3
を左から計算しようが右から計算しようが結果は変わらない。

減法や除法の場合、上に書いたように結合法則が成り立たないので、ちゃんと左から計算しないといけない。もっとも、減法なら加法に、除法なら乗法に書き換えることができるので、あんまりややこしくはないとは思うのだが。

論理記号

算術記号だけではつまらないので、論理記号も。

論理積(∧)や論理和(∨)の場合は、結合法則がなりたつので、左から計算しようが右から計算しようがOKである。

他の論理演算子、たとえば、含意(⇒)とかは結合法則がなりたたない。例えば、p と r が偽で、qが真の場合、

(p ⇒ q) ⇒ r
上の式は、偽になるが、下の式は、真になる。
p ⇒ (q ⇒ r)

どう処理しているか?

冪乗みたいに右から計算するのは、スタック的に処理していて、引き算のようなのはキュー的に処理してるんだろう。まとめると以下のような感じになる。 累乗はスタック減法はキュー

なぜまぎらわしいか

冪乗の場合右から左に計算するというのがわざわざ注意されている理由、それは普通の演算子が左から右に計算されるからだ。

以下のように並べて書くと、

5 ^ 1 ^ 3
上の冪乗も下の減算も同じようにやろうと類推してしまうのは無理もない。
5 - 1 - 3

そもそも特に理由がなければ、冪乗は演算子を表記するのではなく、以下のように右肩に下図をどんどん載せていくだけだ。

5^1^3

こんな風に書くと、これが

(5 ^ 1) ^ 3
のことだとは、(数学にある程度慣れている人以外は)思うまい。

そもそも言語表現化すると、さらに道を誤らせやすいものになる。

5の1乗の3乗
とか言われているのを聞くと、ほとんどの人は、
(5 ^ 1) ^ 3
のことだと思うのではなかろうか?

前に陸倹明先生が中国語において(たぶん日本語でも同じ)は、

父親の父親の父親
という名詞句は、
[父親の父親] の父親
と見ても、
父親の [父親の父親]
と見ても、解釈は同じように見えるとおっしゃっていた。

しかし、

先生の子供の同級生
という名詞句については、
[先生の子供] の同級生
という左からの解釈しかできず、
先生の [子供の同級生]
だと、うまくいかないので、
父親の [父親の父親]
という構造はやはりおかしいという話をされていた。

冪乗の話もこれと似ているのかもしれない。

左側、要するに先に出てきたものから処理した方が、効率も良さそうだし、記憶にかかる負荷も違うだろうし、人間は左側からの見方に乗りやすいのかもしれない。

だから、冪乗の計算で混乱を起こすんだろう。

まとめ

  • 冪乗の計算の時は、右からやる必要があります。
    • これに対して、引き算や割り算の時は、左からやらないとおかしなことになります。
  • 人間は先に出て来たものから処理したいので、冪乗の計算の時、戸惑います。
  続きを読む


Posted by green_idea at 17:20Comments(2)TrackBack(0) |