2006-01-28から1日間の記事一覧

ifと三項演算子

Rubyのif文は値を持ちますから、三項演算子と等価になります。 def abs1(n) if n > 0 return n else return -n end end def abs2(n) return n > 0 ? n : -n end def abs3(n) x = if n > 0 n else -n end return x end p abs1(-123) # => 123 p abs2(-123) # …

Math.sqrt

Math.sqrtで平方根が計算できます。負数を与えるとエラーです。虚数にはなりません。 p Math.sqrt(2) # => 1.4142135623731 p Math.sqrt(-1) # => in `sqrt': Domain error - sqrt (Errno::EDOM)

Complexクラス

Complexクラスで複素数が扱えます。Complex::Iが虚数単位iに相当しますが、Complex(0, 1)とequal?ではありません。なぜでしょうね。 require "complex" p Complex(0, 1) # => Complex(0, 1) p Complex::I # => Complex(0, 1) if Complex(0, 1).equal?(Comple…

Rationalクラス

Rationalクラスで有理数が扱えます。Rational(分子, 分母)で有理数。分母を省略すると整数になります。 require "rational" def harmony(n) sum = Rational(0) for k in 1..n sum += Rational(1, k) end return sum end for n in 1..20 r = harmony(n) print…