From: keiju@... (ÀÐÄͷ½¼ù ) Date: 1996-12-18T15:28:18+09:00 Subject: [ruby-list:1359] Re: Rational and Complex けいじゅ@SHLジャパンです. In [ruby-list :01335 ] the message: "[ruby-list:1335] Re: Rational and Complex ", on Dec/18 11:37(JST) sinara@blade.nagaokaut.ac.jp writes: >def isqrt(d) > x = d > loop do > a = (x + d/x)/2 > return x if a >= x > x = a > end >end > >で整数の平方根は求めることができるわけです。ここでは初期値を >d にしてますが。初期値を求めるのに float の sqrt を使ったら早 >くなるかな? なるほど... newton法だと大部簡単なアルゴリズムになるんですね. bignumの 割算を実装するには開平法のように実装するしか方法がないので, 平方根も開 平法がよいに違いないと信じていたのですが... # まず, 開平法を思い出して, それから実装しましたからかなり手間がかかっ # ているのに(;_; ところで, 冪乗根は, def invpow(n, d) x = d loop do a = ((n - 1) * x**(n-1) + d/x)/n return x if a >= x x = a end end でいいんですかね?? __ ..........................................石塚 圭樹@SHLジャパン(株)... ------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----