Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library rational

library rational

要約

有理数を扱うためのライブラリです。

有理数のためのクラス。 rational を require すると Integer のメソッドが以下のように再定義される。

クラスとモジュール

class Rational

Integer < Rational < Float の順に強いです。つまり other が Float なら、 self を Float に変換してから演算子を適用します。other が Integer なら other を Rational に変換してから演算子を適用します。冪乗は例外です。

追加・再定義されるメソッド

Bignum#self ** other [redefined by rational]
Bignum#rpower(other) [redefined by rational]

Returns a Rational number if the result is in fact rational (i.e. +other+ < 0).

Bignum#power!(other) [added by rational]
Bignum#quo(other) [redefined by rational]

If Rational is defined, returns a Rational number instead of a Bignum.

Fixnum#self ** other [redefined by rational]
Fixnum#rpower(other) [redefined by rational]

Returns a Rational number if the result is in fact rational (i.e. other < 0).

Fixnum#power!(other) [added by rational]
Fixnum#quo(other) [redefined by rational]

If Rational is defined, returns a Rational number instead of a Fixnum.

Integer#self ** other [redefined by rational]

べき乗。

  • otherが正または0の整数(Integer)ならば、整数(Integer)を返す。
  • otherが負の整数(Integer)ならば、有理数(Rational)を返す。
  • otherが有理数(Rational)や浮動小数(Float)ならば、浮動小数(Float)を返す。
2 **  3          #=> 8
2 ** -3          #=> Rational(1, 8)
2 ** Rational(3) #=> 8.0
Integer#self / other [redefined by rational]

除算。

  • otherが有理数(Rational)ならば、有理数(Rational)を返す。
  • otherがそれ以外なら、Integer#/と同じ。つまり、 other が整数(Integer)ならば、整数(Integer)を(整除)、浮動小数(Float)ならば、 浮動小数(Float)を返す。 ただし、いずれも、other == 0 の時は、ZeroDivisionErrorとなる。
Integer#denominator [added by rational]

In an integer, the denominator is 1. Therefore, this method returns 1.

Integer#gcd(n) [added by rational]

self と n の最大公約数を Fixnum として返す。 self や n が負の場合は、正に変換してから計算する。

72.gcd 168           # -> 24
19.gcd 36            # -> 1
Integer#gcdlcm(int) [added by rational]

最大公約数と最小公倍数の配列 [self.gcd, self.lcm] を返します。

6.gcdlcm 9     # -> [3, 18]
Integer#lcm(n) [added by rational]

self と n の最小公倍数を返す。 self や n が負の場合は、正に変換してから計算する。

6.lcm 7        # -> 42
6.lcm 9        # -> 18
Integer#numerator [added by rational]

In an integer, the value is the numerator of its rational equivalent. Therefore, this method returns self.

Integer#power!(other) [added by rational]

rationalで再定義される前のInteger#**の別名。 other が正または 0 の整数 (Integer) ならば、 整数 (Integer) を、それ以外なら、浮動小数 (Float) を返す。

Integer#to_r [added by rational]

対応する有理数 (Rational) を返す。 Rational(self, 1) と同じ。

Kernel#Rational(a, b) [added by rational]

Rational オブジェクトを生成する。

Creates a Rational number (i.e. a fraction). +a+ and +b+ should be Integers:

Rational(1,3)           # -> 1/3

Note: trying to construct a Rational with floating point or real values produces errors:

Rational(1.1, 2.3)      # -> NoMethodError

Classes

Sublibraries