対数


2の3乗というときふつうの言語では2^3というように^(キャレット、べき乗)を使います。J言語でも^(キャレット)です。APLではこれが★(アスタリスク)で2★3のように書きます。さて、J言語の^(キャレット)を単項動詞として使うとどうなるか。

   ^1
2.71828

どこかで見たような数字だと思ったら自然対数の底ですね。で、自然対数の底ってなに? ウィキペディアによると、
\Large e=\lim_{n\to\infty} \left(1+\frac~1n\right)^n
とのことで、10^10とか大きい数で計算してみると、なるほど^1に近い数字になります。

  (1+1%10^10)^(10^10)
2.71828

さて、log(ログ)ですが、APLでは丸の中にアスタリスクがあるマークですが、J言語では^.(キャレットドット)です。^.(キャレットドット)の前に数字を置くと、その数字を底にしたlogを計算してくれます。

   10^.1000
3
   2^.8
3
   ^.100
4.60517

単項動詞として使うと、最後の例のように自然対数の底eを底とするlogを計算してくれます。
なにかできそうですね。

以上