Numericのサブクラスのうち整数。
成果物
情報源
クラス | 概要 |
---|---|
Numeric | 数の抽象クラス |
Integer | 整数クラス。 |
Bignum | Integerの具象クラス(Ruby2.4からはIntegerのエイリアス) |
Fixnum | Integerの具象クラス(Ruby2.4からはIntegerのエイリアス) |
Float | 浮動少数クラス。IEEE754。 |
Rational | 有理数クラス。分子と分母。 |
Complex | 複素数クラス。整数と虚数。 |
整数はInteger、有理数はRationalを使うのが良さそう。
Bignum、Fixnum、FloatはC言語などと連携するときにのみ使う。
Integer
sqrt
平方根を返す。
p Integer.sqrt(0) # => 0 p Integer.sqrt(1) # => 1 #p Integer.sqrt(-1) #=> Numerical argument is out of domain - "isqrt" (Math::DomainError) p Integer.sqrt(2) # => 1 近似値は1.41421356...(一夜一夜に人見頃) p Integer.sqrt(3) # => 1 近似値は1.7320508...(人並みにおごれや) p Integer.sqrt(4) # => 2 p Integer.sqrt(5) # => 2 近似値は2.2360679...(富士山麓オウム鳴く) p Integer.sqrt(24) # => 4 p Integer.sqrt(25) # => 5 p Integer.sqrt(10**400) == 10**200 # => true
他言語ならばMathクラスに実装されているであろう関数。
**
, pow
べき乗。
p 2 ** 3 #=> 8 p 2.pow 3 #=> 8
gcd
最大公約数を返す。
2.gcd(2) # => 2 4.gcd(6) # => 2 4.gcd(8) # => 4 3.gcd(7) # => 1 3.gcd(-7) # => 1 ((1<<31)-1).gcd((1<<61)-1) # => 1
lcm
最小公倍数を返す。
p 2.lcm(2) # => 2 p 4.lcm(6) # => 12 p 4.lcm(8) # => 8 p 3.lcm(7) # => 21 p 3.lcm(-7) # => 21 p ((1<<31)-1).lcm((1<<61)-1) # => 4951760154835678088235319297
gcdlcm
最大公約数と最小公倍数の配列を返す。
p 2.gcdlcm(2) # => [2,2] p 4.gcdlcm(6) # => [2,12] p 4.gcdlcm(8) # => [4,8] p 3.gcdlcm(7) # => [1,21] p 3.gcdlcm(-7) # => [1,21] p ((1<<31)-1).gcdlcm((1<<61)-1) # => [1,4951760154835678088235319297]
所感
他にも面白いメソッドがいくつもある。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- Ruby 3.0.2
$ uname -a Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux