From: Shin-ichiro HARA Date: 2008-04-02T18:23:01+09:00 Subject: [ruby-dev:34221] Re: Complex組み込み 原です。 > 卜部です。 > > Shin-ichiro HARA さんは書きました: >> ちょっと本題から離れるけど、前からわからなかったのですが、C の math ラ >> イブラリの仕様として、Math.sqrt(n ** 2).floor は、n になることは保証さ >> れてるんですかね(n は自然数)。n - 1 になったりしないですかね。多分、大 >> 丈夫なんでしょうけど、明文化されてるでしょうか。 >> > > roundじゃなくてfloorですか?仕様では決まってない気がします。 例えば、素数判定を def prime?(n) 2.upto Math.sqrt(n) do |i| return false if (n % i).zero? end true end って書きたい。でも不安。 2.upto Math.sqrt(n).round do |i| じゃ、1回余計にループが回ることがあるし、第一見た目かっこ悪いですよね。 卜部さんの用途ならルートの中は平方数であることがわかっているので、 round でいいですが。 > roundじゃなくてfloorですか?仕様では決まってない気がします。 ああ、やっぱり決まってなんいですか!