Перейти к содержанию

Ruby/Справочник/Integer

Материал из Викиучебника — открытых книг для открытого мира

Класс Integer < Numeric

[править]

Integer — это родительский класс для классов Bignum и Fixnum, которые отвечают за работу с целыми числами.


Примеси

Precision (prec, prec_f, prec_i)

Методы класса

from_prime_division, induced_from

Методы объекта

ceil, chr, denominator, downto, even?, floor, gcdlcm, gcd, integer?, lcm, next, numerator, odd?, prime_division, round, succ, times, to_f, to_int, to_i, to_r, to_s, truncate, upto

Integer::from_prime_division

[править]

Integer::from_prime_division( ''array'' )   #-> integer

Преобразует двумерный массив array из простых делителей и их степеней обратно в целое число.

require 'mathn'
Integer.from_prime_division( [[5,1], [7,1]] )      #-> 35
Integer.from_prime_division( 122.prime_division )  #-> 122
Информация

Полезно посмотреть на метод prime_division, который имеет схожую функциональность

Integer::induced_from

[править]

Integer.induced_from(obj)    #-> integer

Преобразует obj в целое число.

Integer#ceil

[править]

int.to_i      #-> int
int.to_int    #-> int
int.floor     #-> int
int.ceil      #-> int
int.round     #-> int
int.truncate  #-> int

В виду того, что int уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение int.

Информация

Полезно посмотреть на методы ceil, floor, round, to_i, to_int и truncate, которые имеют схожую функциональность

Integer#chr

[править]

int.chr    #-> string

Возвращает строку, состоящую из ASCII-символа с кодом равным значению int.

65.chr    #-> "A"
?a.chr    #=> "a"
230.chr   #=> "\346"

Integer#denominator

[править]

num.denominator   #-> 1

Для целого числа знаменатель всегда равен 1. Поэтому, данный метод возвращает 1.

Информация

Знаменатель отличен от 1 только у рациональных дробей. Данный метод создан для совместимости, так как целые числа — это частный случай рациональных дробей. Формально, целое число — это рациональная дробь у которой знаменатель равен 1

Integer#downto

[править]

int.downto(limit) {|i| block }     #-> int

Выполняет блок для всех чисел с int по limit с шагом -1 (то есть число int должно быть больше числа limit).

5.downto(1) { |n| print n, ".. " }
print "  Liftoff!\n"

результат:

 5.. 4.. 3.. 2.. 1..   Liftoff!

Integer#even?

[править]

num.even?  #->  true или false

Возвращает true, если int - четное число.

Integer#floor

[править]

int.to_i      #-> int
int.to_int    #-> int
int.floor     #-> int
int.ceil      #-> int
int.round     #-> int
int.truncate  #-> int

В виду того, что int уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение int.

Информация

Полезно посмотреть на методы ceil, floor, round, to_i, to_int и truncate, которые имеют схожую функциональность

Integer#gcd

[править]

num.gcd(other)

Возвращает наибольший общий делитель двух чисел (num и other).

72.gcd 168           #-> 24
19.gcd 36            #-> 1
Информация

Результат данного метода — положительное целое число, независимо от знака аргументов

Информация

Полезно посмотреть на методы gcd и gcdlcm, которые имеют схожую функциональность

Integer#gcdlcm

[править]

num.gcdlcm(other)

Возвращает НОД и НОК (см. gcd и lcm) двух чисел (num и other). Этот метод особенно эффективен, когда необходимо посчитать НОД и НОК одновременно.

6.gcdlcm 9     #-> [3, 18]
Информация

Полезно посмотреть на методы gcd и lcm, которые имеют схожую функциональность

Integer#integer?

[править]

int.integer? #-> true

Всегда возвращает true.

Integer#lcm

[править]

num.lcm(other)  #-> integer

Возвращает наименьшее общее кратное двух чисел (num и other).

6.lcm 7        #-> 42
6.lcm 9        #-> 18
Информация

Результат данного метода — положительное целое число, независимо от знака каждого из аргументов

Информация

Полезно посмотреть на методы gcd и gcdlcm, которые имеют схожую функциональность

Integer#next

[править]

int.next    #-> int
int.succ    #-> int

Возвращает целое число, которое равно int + 1.

1.next      #-> 2
(-1).next   #-> 0
Информация

Методы succ и next — абсолютно идентичны, то есть являются именами одного и того же метода

Integer#numerator

[править]

num.numerator  #-> num

Для целого числа числитель всегда равен его значению. Поэтому данный метод возвращает значение num.

Информация

Полезно посмотреть на метод denominator, который имеет схожую функциональность

Integer#odd?

[править]

num.odd?  #->  true или false

Возвращает true, если int - нечетное число.

Integer#prime_division

[править]

num.prime_division   #-> array

Возвращает двумерный массив, состоящий из простых делителей числа и их степеней.

require 'mathn'
35.prime_division    #-> [[5, 1], [7, 1]]
256.prime_division   #-> [[2, 8]]
Информация

Полезно посмотреть на метод from_prime_division, который имеет схожую функциональность

Integer#round

[править]

int.to_i      #-> int
int.to_int    #-> int
int.floor     #-> int
int.ceil      #-> int
int.round     #-> int
int.truncate  #-> int

В виду того, что int уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение int.

Информация

Полезно посмотреть на методы ceil, floor, round, to_i, to_int и truncate, которые имеют схожую функциональность

Integer#succ

[править]

int.next    #-> int
int.succ    #-> int

Возвращает целое число, которое равно int + 1.

1.next      #-> 2
(-1).next   #-> 0
Информация

Методы succ и next — абсолютно идентичны, то есть являются именами одного и того же метода

Integer#times

[править]

int.times {|i| block }     #-> int

Выполняет блок int раз, передавая в него значения от 0 до int - 1.

5.times do |i|
  print i, " "
end

результат:

 0 1 2 3 4

Integer#to_f

[править]

int.to_f      #-> float

Преобразует int в Float. Если int не помещается в Float, результатом будет бесконечность.

108.to_f #-> 108.0
Информация

Подробнее об Float

Integer#to_i

[править]

int.to_i      #-> int
int.to_int    #-> int
int.floor     #-> int
int.ceil      #-> int
int.round     #-> int
int.truncate  #-> int

В виду того, что int уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение int.

Информация

Полезно посмотреть на методы ceil, floor, round, to_i, to_int и truncate, которые имеют схожую функциональность

Integer#to_int

[править]

int.to_i      #-> int
int.to_int    #-> int
int.floor     #-> int
int.ceil      #-> int
int.round     #-> int
int.truncate  #-> int

В виду того, что int уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение int.

Информация

Полезно посмотреть на методы ceil, floor, round, to_i, to_int и truncate, которые имеют схожую функциональность

Integer#to_r

[править]

num.to_r   #-> rational

Возвращает число num в виде рациональной дроби.

35.to_r   #-> Rational(35, 1)

Integer#to_s

[править]

int.to_s(base=10) #-> string

Возвращает строку, содержащую представление разряда int с основанием системы счисления (от 2 до 36).

12345.to_s       #=> "12345"
12345.to_s(2)    #=> "11000000111001"
12345.to_s(8)    #=> "30071"
12345.to_s(10)   #=> "12345"
12345.to_s(16)   #=> "3039"
12345.to_s(36)   #=> "9ix"
78546939656932.to_s(36)  #=> "rubyrules"
Информация

Также имеет псевдоним: инспектировать

Integer#truncate

[править]

int.to_i      #-> int
int.to_int    #-> int
int.floor     #-> int
int.ceil      #-> int
int.round     #-> int
int.truncate  #-> int

В виду того, что int уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение int.

Информация

Полезно посмотреть на методы ceil, to_i, to_int, floor, round и truncate, которые имеют схожую функциональность

Integer#upto

[править]

int.upto(limit) {|i| block }     #-> int

Выполняет блок для всех целых чисел с int по limit, включительно.

5.upto(10) { |i| print i, " " }

результат:

 5 6 7 8 9 10