原です。
In message "[ruby-math:00674] Re: power"
on 02/04/06, Yoichi Hanatani <t29x0595 / ip.media.kyoto-u.ac.jp> writes:
|花谷です
|n = other
|while n & 1 == 0
| x *= x
| n >>= 1
|end
|z = x
|n >>= 1
|while n != 0
| z *= x if n & 1 != 0
| x *= x
| n >>= 1
|end
ああ、これは私が書いていたのと一字一句同じです。
|4乗で効果が見られました。
|複雑な割には効果が薄いですが。
私も何千何万乗まで軽い積や重い積で、実験してみましたが、
前のに比べてあまり速くはないみたいでした。特定の other
例えば2のベキについては、明らかに速かったりしますが。
とは言え、このコードは、見ためは悪いけど「定石」と呼んで
もいいかもしれませんね。