Ruby/Справочник/Integer: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Revert to revision 23314 dated 2007-08-11 16:41:31 by Rubynovich using popups
Строка 1:
==Класс Integer < Numeric==
Я считаю что [[Участник:Самохвалов|Cа
<tt>Integer</tt> — это родительский класс для классов [[Ruby/Справочник/Bignum|Bignum]] и [[Ruby/Справочник/Fixnum|Fixnum]], которые отвечают за работу с целыми числами.
мохвалов]] тупой [[гомосексуал]]ист-педераст что [[Участник:Lvova|Анастасия Львова]] идиотка и она трахалась со [[Сталин]]ым и за это её ебали нацистские генералы [[Гитлер]]а ещё Самохвалова отъебли немцы-[[фашисты]] в немецком концлагере а потом отправили его в [[газенваген]]!
----
 
'''Примеси'''
 
[[Ruby/Справочник/Precision|Precision]] ([[Ruby/Справочник/Precision#Precision#prec|prec]], [[Ruby/Справочник/Precision#Precision#prec_f|prec_f]], [[Ruby/Справочник/Precision#Precision#prec_i|prec_i]])
 
'''Методы класса'''
 
[[#Integer::from_prime_division|from_prime_division]], [[#Integer::induced_from|induced_from]]
 
'''Методы объекта'''
 
[[#Integer#ceil|ceil]], [[#Integer#chr|chr]], [[#Integer#denominator|denominator]], [[#Integer#downto|downto]], [[#Integer#floor|floor]], [[#Integer#gcdlcm|gcdlcm]], [[#Integer#gcd|gcd]], [[#Integer#integer?|integer?]], [[#Integer#lcm|lcm]], [[#Integer#next|next]], [[#Integer#numerator|numerator]], [[#Integer#prime_division|prime_division]], [[#Integer#round|round]], [[#Integer#succ|succ]], [[#Integer#times|times]], [[#Integer#to_int|to_int]], [[#Integer#to_i|to_i]], [[#Integer#to_r|to_r]], [[#Integer#truncate|truncate]], [[#Integer#upto|upto]]
===Integer::from_prime_division===
----
<source lang=ruby>Integer::from_prime_division( ''array'' ) #-> integer</source>
----
Преобразует двумерный массив ''array'' из простых делителей и их степеней обратно в целое число.
<source lang=ruby>require 'mathn'
Integer.from_prime_division( [[5,1], [7,1]] ) #-> 35
Integer.from_prime_division( 122.prime_division ) #-> 122</source>
{{Похожие методы|Integer|prime_division}}
{{Необходима библиотека|mathn}}
 
===Integer::induced_from===
----
<source lang=ruby>Integer.induced_from(obj) #-> integer</source>
----
Преобразует ''obj'' в целое число.
===Integer#ceil===
----
<source lang=ruby>int.to_i #-> int
int.to_int #-> int
int.floor #-> int
int.ceil #-> int
int.round #-> int
int.truncate #-> int</source>
----
В виду того, что ''int'' уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение ''int''.
{{Похожие методы|Integer|ceil|floor|round|to_i|to_int|truncate}}
 
===Integer#chr===
----
<source lang=ruby>int.chr #-> string</source>
----
Возвращает строку, состоящую из [[w:ASCII|ASCII]]-символа с кодом равным значению ''int''.
<source lang=ruby>65.chr #-> "A"
?a.chr #=> "a"
230.chr #=> "\346"</source>
 
===Integer#denominator===
----
<source lang=ruby>num.denominator #-> 1</source>
----
Для целого числа [[w:Знаменатель|знаменатель]] всегда равен 1. Поэтому, данный метод возвращает 1.
{{info|Знаменатель отличен от 1 только у рациональных дробей. Данный метод создан для совместимости, так как целые числа — это частный случай рациональных дробей. Формально, целое число — это рациональная дробь у которой знаменатель равен 1}}
 
===Integer#downto===
----
<source lang=ruby>int.downto(limit) {|i| block } #-> int</source>
----
Выполняет блок для всех чисел с ''int'' по ''limit'' с шагом -1 (то есть число ''int'' должно быть больше числа ''limit'').
<source lang=ruby>5.downto(1) { |n| print n, ".. " }
print " Liftoff!\n"</source>
''результат'':
<tt>5.. 4.. 3.. 2.. 1.. Liftoff!</tt>
 
===Integer#floor===
----
<source lang=ruby>int.to_i #-> int
int.to_int #-> int
int.floor #-> int
int.ceil #-> int
int.round #-> int
int.truncate #-> int</source>
----
В виду того, что ''int'' уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение ''int''.
{{Похожие методы|Integer|ceil|floor|round|to_i|to_int|truncate}}
===Integer#gcd===
----
<source lang=ruby>num.gcd(other)</source>
----
Возвращает [[w:НОД|наибольший общий делитель]] двух чисел (''num'' и ''other'').
<source lang=ruby>72.gcd 168 #-> 24
19.gcd 36 #-> 1</source>
{{info|Результат данного метода — положительное целое число, независимо от знака аргументов}}
{{Похожие методы|Integer|gcd|gcdlcm}}
 
===Integer#gcdlcm===
----
<source lang=ruby>num.gcdlcm(other)</source>
----
Возвращает [[w:НОД|НОД]] и [[w:НОК|НОК]] (см. [[#Integer#gcd|gcd]] и [[#Integer#lcm|lcm]]) двух чисел (''num'' и ''other''). Этот метод особенно эффективен, когда необходимо посчитать НОД и НОК одновременно.
<source lang=ruby>6.gcdlcm 9 #-> [3, 18]</source>
{{Похожие методы|Integer|gcd|lcm}}
 
===Integer#integer?===
----
<source lang=ruby>int.integer? #-> true</source>
----
Всегда возвращает <tt>true</tt>.
===Integer#lcm===
----
<source lang=ruby>num.lcm(other) #-> integer</source>
----
Возвращает [[w:НОК|наименьшее общее кратное]] двух чисел (''num'' и ''other'').
<source lang=ruby>6.lcm 7 #-> 42
6.lcm 9 #-> 18</source>
{{info|Результат данного метода — положительное целое число, независимо от знака каждого из аргументов}}
{{Похожие методы|Integer|gcd|gcdlcm}}
 
===Integer#next===
----
<source lang=ruby>int.next #-> integer
int.succ #-> integer</source>
----
Возвращает целое число, которое равно ''int'' + 1.
<source lang=ruby>1.next #-> 2
(-1).next #-> 0</source>
{{Идентичные методы|Integer|succ|next}}
 
===Integer#numerator===
----
<source lang=ruby>num.numerator #-> num</source>
----
Для целого числа [[w:Числитель|числитель]] всегда равен его значению. Поэтому данный метод возвращает значение ''num''.
{{Похожие методы|Integer|denominator}}
 
===Integer#prime_division===
----
<source lang=ruby>num.prime_division #-> array</source>
----
Возвращает двумерный массив, состоящий из простых делителей числа и их степеней.
<source lang=ruby>require 'mathn'
35.prime_division #-> [[5, 1], [7, 1]]
256.prime_division #-> [[2, 8]]</source>
{{info|Полезно посмотреть на метод [[#Integer::from_prime_division|from_prime_division]], который имеет схожую функциональность}}
{{Необходима библиотека|mathn}}
 
===Integer#round===
----
<source lang=ruby>int.to_i #-> int
int.to_int #-> int
int.floor #-> int
int.ceil #-> int
int.round #-> int
int.truncate #-> int</source>
----
В виду того, что ''int'' уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение ''int''.
{{Похожие методы|Integer|ceil|floor|round|to_i|to_int|truncate}}
 
===Integer#succ===
----
<source lang=ruby>int.next #-> integer
int.succ #-> integer</source>
----
Возвращает целое число, которое равно ''int'' + 1.
<source lang=ruby>1.next #-> 2
(-1).next #-> 0</source>
{{Идентичные методы|Integer|succ|next}}
 
===Integer#times===
----
<source lang=ruby>int.times {|i| block } #-> int</source>
----
Выполняет блок ''int'' раз, передавая в него значения от 0 до ''int'' - 1.
<source lang=ruby>5.times do |i|
print i, " "
end</source>
''результат'':
<tt>0 1 2 3 4</tt>
 
===Integer#to_i===
----
<source lang=ruby>int.to_i #-> int
int.to_int #-> int
int.floor #-> int
int.ceil #-> int
int.round #-> int
int.truncate #-> int</source>
----
В виду того, что ''int'' уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение ''int''.
{{Похожие методы|Integer|ceil|floor|round|to_i|to_int|truncate}}
 
===Integer#to_int===
----
<source lang=ruby>int.to_i #-> int
int.to_int #-> int
int.floor #-> int
int.ceil #-> int
int.round #-> int
int.truncate #-> int</source>
----
В виду того, что ''int'' уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение ''int''.
{{Похожие методы|Integer|ceil|floor|round|to_i|to_int|truncate}}
 
===Integer#to_r===
----
<source lang=ruby>num.to_r #-> rational</source>
----
Возвращает число ''num'' в виде [[w:Рациональное число|рациональной дроби]].
<source lang=ruby>35.to_r #-> Rational(35, 1)</source>
 
===Integer#truncate===
----
<source lang=ruby>int.to_i #-> int
int.to_int #-> int
int.floor #-> int
int.ceil #-> int
int.round #-> int
int.truncate #-> int</source>
----
В виду того, что ''int'' уже целое число, а данный метод производит округление к целому числу, то он просто возвращает значение ''int''.
{{Похожие методы|Integer|ceil|to_i|to_int|floor|round|truncate}}
===Integer#upto===
----
<source lang=ruby>int.upto(limit) {|i| block } #-> int</source>
----
Выполняет блок для всех целых чисел с ''int'' по ''limit'', включительно.
<source lang=ruby>5.upto(10) { |i| print i, " " }</source>
''результат'':
<tt>5 6 7 8 9 10</tt>