5.9. Работа с рациональными числами
5.9. Работа с рациональными числами
Класс Rational позволяет (во многих случаях) производить операции с дробями с «бесконечной» точностью, но лишь если это настоящие рациональные числа (то есть частное от деления двух целых чисел). К иррациональным числам, например ? или e, он неприменим.
Для создания рационального числа мы вызываем специальный метод Rational (еще один из немногих методов, имя которого начинается с прописной буквы; обычно такие методы служат для преобразования данных или инициализации).
r = Rational(1,2) # 1/2 или 0.5
s = Rational(1,3) # 1/3 или 0.3333...
t = Rational(1,7) # 1/7 или 0.14...
u = Rational(6,2) # "то же самое, что" 3.0
z = Rational(1,0) # Ошибка!
Результатом операции над двумя рациональными числами, как правило, снова является рациональное число.
r+t # Rational(9, 14)
r-t # Rational(5, 14)
r*s # Rational(1, 6)
r/s # Rational(3, 2)
Вернемся к примеру, на котором мы демонстрировали неточность операций над числами с плавающей точкой (см. раздел 5.4). Ниже мы выполняем те же действия над рациональными, а не вещественными числами и получаем «математически ожидаемый» результат:
x = Rational(1000001,1)/Rational(3,1000)
y = Rational(3,1000)*x
if y == 1000001.0
puts "да" # Теперь получаем "да"!
else
puts "нет"
end
Конечно, не любая операция дает рациональное же число в качестве результата:
x = Rational (9,16) # Rational(9, 16)
Math.sqrt(x) # 0.75
x**0.5 # 0.75
x**Rational(1,2) # 0.75
Однако библиотека mathn в какой-то мере изменяет это поведение (см. раздел 5.12).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Исключения, возникающие при выполнении операций над числами с плавающей точкой
Исключения, возникающие при выполнении операций над числами с плавающей точкой Существует семь различных кодов исключений, которые могут возникать при выполнении операций с использованием данных вещественного типа. Первоначально эти исключения отключены и не могут
Функции XPath для работы с числами
Функции XPath для работы с числами В XPath имеются следующие функции для работы с числами:• ceiling(). Возвращает наименьшее целое, большее переданного функции числа,• floor(). Возвращает наибольшее целое, меньшее переданного функции числа;• number(). Приводит переданный ей параметр к
3.14.3. Сопоставление с числами, записанными римскими цифрами
3.14.3. Сопоставление с числами, записанными римскими цифрами Следующее довольно сложное регулярное выражение сопоставляется с любым правильно записанным римскими цифрами числом (до 3999 включительно). Как и раньше, для удобства восприятия образец разбит на части:rom1 =
5.2. Основные операции над числами
5.2. Основные операции над числами Обычные операции сложения, вычитания, умножения и деления в Ruby, как и во всех распространенных языках программирования, обозначаются операторами +, -, *, /. Операторы в большинстве своем реализованы в виде методов (и потому могут быть
5.7. Работа с очень большими числами
5.7. Работа с очень большими числами Управлять массами все равно что управлять немногими: дело в частях и в числе. Сунь-Цзы[9] При необходимости Ruby позволяет работать с произвольно большими целыми числами. Переход от Fixnum к Bignum производится автоматически, прозрачно для
5.17. Поразрядные операции над числами
5.17. Поразрядные операции над числами Иногда требуется работать с двоичным представлением объекта Fixnum. На прикладном уровне такая необходимость возникает нечасто, но все-таки возникает.Ruby обладает всеми средствами для таких операций. Для удобства числовые константы
11.7. Инициализация контейнера случайными числами
11.7. Инициализация контейнера случайными числами ПроблемаТребуется заполнить произвольный контейнер случайными числами.РешениеМожно использовать функции generate и generate_n из заголовочного файла <algorithm> совместно с функтором, возвращающим случайные числа. Пример 11.13
2. Игры с числами
2. Игры с числами Арифметические развлечения Есть много примеров арифметических игр, головоломок и развлечений. Их можно найти в [BAL], [BER], [KUE]. Мы обращаемся и к другим источникам и добавляем некоторые задачи, которые представляют интерес собственно с точки зрения
2. Игры с числами
2. Игры с числами Головоломка 3.Я нашел это упражнение в монографии, посвященной языку Пролог. Предложенное там решение действует методом проб и ошибок. Но задача решается намного проще.Как всегда, полностью определим задачу. Искомое число представляется в десятичной
4.6. Операции с комплексными числами
4.6. Операции с комплексными числами Класс комплексных чисел стандартной библиотеки С++ представляет собой хороший пример использования объектной модели. Благодаря перегруженным арифметическим операциям объекты этого класса используются так, как будто они
Операции с числами
Операции с числами Перечень арифметических операций в XPath довольно ограничен. К ним относится сложение, вычитание, умножение, деление и унарная операция отрицания, которая меняет значение операнда на противоположное. Кроме того, числа можно сравнивать при помощи
Игры с числами
Игры с числами Пятница 13(13)Программа должна выдать список из 13 ближайших тринадцатых пятниц, отсчитывая от текущей даты(14)Угадай числоПримерный сценарий:(компьютер) Загадано двух [трех, четырех, пяти] значное число, сколько попыток вам надо для отгадывания?(пользователь)
2.2. Арифметические операции над числами, представленными в различных системах счисления
2.2. Арифметические операции над числами, представленными в различных системах счисления Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же правилам. Для проведения арифметических операций над числами, представленными в
Практическая работа 19. Поиск в Интернете. Работа с папками Избранное и Журнал
Практическая работа 19. Поиск в Интернете. Работа с папками Избранное и Журнал Задание 1. Научиться выполнять поиск в Интернете, настраивать параметры поиска, работать с папками Избранное и Журнал.Последовательность выполнения1. Запустите Internet Explorer.2. Щелкните кнопкой мыши