ワンポイントテクニック No.011 G800シリーズ対応

べき乗演算の高速化

 BASICの演算子(「+」や「−」など)の中でもっとも処理に時間がかかるのがべき乗(「^」)です。
 これは、内部的には次のようになっているから遅いのです。

  X^Y=10^((LOG X)*Y)
(ここのLOGは通常のパソコンBASICとは違い常用対数である)

 見てのとおり、対数演算を内部で行っているので遅くても仕方がないように思えます。
 しかし、計算するのが「2のN乗」のように定数のべき乗ならば実は次のようにすることが可能です。

  2^N=10^((LOG 2)*N)

ここで、「LOG 2」は定数(約0.3010)ですね。
したがって次のようになります。

  2^N=10^(0.301*N)

 これでは最初から素直に「2^N」を計算した方が速そうですが、シャープのポケコンにはすごく便利な関数があります。それが「TEN」です。
 このTENは10のべき乗を計算する関数ですが、これを使えば次のようにできます。

  2^N=TEN (0.301*N)  

 これにより対数計算が内部で行われることがないので高速に計算できるわけです。
 ただし、若干誤差が発生してしまうので厳密な値を要求する場面では使えないでしょう(笑)。


RETURN

inserted by FC2 system