2009-03-16から1日間の記事一覧

べき乗(2)

バイナリ法ってなんとなく美しくなくて嫌いなのだが、ジョギングしながらぼんやり考えていたら、再帰なら割ときれいにかけることに気がついた。 import timedef pow(a, n): if n > 1: b = pow(a, n >> 1) if n & 1: # odd return a * b * b else: return b *…

べき乗

昨日のコードでべき乗の計算を、10をn回掛けて行っていたが、Pythonはこれでよかったんだった。 a = 10**nこれだけでは面白くないので、再帰のコードを考えてみた。 def pow(a, n): if n > 1: half = n >> 1 return pow(a, half) * pow(a, n - half) elif n …