# [Ride v4 и v3] Математические функции
⚠️ Это документация Стандартной библиотеки версии 4 и 3. Рекомендуем использовать версию 6. Перейти к версии 6
Название | Описание | Сложность |
---|---|---|
fraction | Умножает два целых числа и делит на третье без переполнения | 1 |
log | Вычисляет логарифм числа по заданному основанию | 100 |
median | Возвращает медиану списка целых чисел | 20 |
pow | Возводит число в степень | 100 |
# fraction
Умножает целые числа a
и b
и делит на целое число c
без переполнения.
Результат a × b / c
не должен превышать максимальное целочисленное значение 9 223 372 036 854 755 807.
fraction(a: Int, b: Int, c: Int): Int
# Параметры
Параметр | Описание |
---|---|
a : Int | Целое a |
b : Int | Целое b |
c : Int | Целое c |
# Примеры
Пусть:
a = 100 000 000 000,
b = 50 000 000 000 000,
c = 2 500 000.
Следующее выражение с операторами *
and /
вызывает ошибку переполнения:
a × b /c # ошибка, поскольку a × b превышает максимальное целочисленное значение
Использование функции fraction
не приводит к переполнению:
fraction(a, b, c) # Результат: 2 000 000 000 000 000 000
# log
Вычисляет log
b
a
.
log(value: Int, ep: Int, base: Int, bp: Int, rp: Int, round: UP|DOWN|CEILING|FLOOR|HALFUP|HALFDOWN|HALFEVEN): Int
В Ride нет типа данных с плавающей точкой. Поэтому, чтобы вычислить log
2,716,25, нужно указать value
= 1625, vp
= 2 и base
= 27, bp
= 1.
Еще примеры:
a | value | vp |
---|---|---|
16,25 | 1625 | 2 |
5 | 5 | 0 |
5,00 | 500 | 2 |
Если функция log
возвращает, например, 2807, а параметр rp
= 3, это значит, что результат вычисления равен 2,807; в числе 2807 последние 3 цифры — дробная часть.
Параметр | Описание |
---|---|
value : Int | Число a без десятичной точки |
vp : Int | Количество знаков после запятой у a |
base : Int | Основание логарифма b без десятичной точки |
bp : Int | Количество знаков после запятой у b |
rp : Int | Количество знаков после запятой у результата, от 0 до 8 включительно. Задает точность вычисления |
round : UP|DOWN|CEILING|FLOOR|HALFUP|HALFDOWN|HALFEVEN | Одна из переменных округления |
# Примеры
log
2,716,25 = 2,807035421...
log(1625, 2, 27, 1, 2, HALFUP) # Функция возвращает 281, поэтому результат: 2.81
log(1625, 2, 27, 1, 5, HALFUP) # Функция возвращает 280703542, поэтому результат: 2.80704
log(0, 0, 2, 0, 0, HALFUP) # Результат: -Infinity
# median
Возвращает медиану списка целых чисел. Список не может быть пустым, иначе скрипт завершится с ошибкой.
Функция
median
добавлена в Стандартной библиотеке версии 4.
median(arr: List[Int]): Int
# Параметры
Параметр | Описание |
---|---|
arr : List[Int] | Список целых чисел |
# Примеры
median([1, 2, 3]) # Возвращает 2
median([2, 4, 9, 20]) # Возвращает 6
median([-2, -4, -9, -20]) # Возвращает -7
# pow
Вычисляет a
b
.
pow(base: Int, bp: Int, exponent: Int, ep: Int, rp: Int, round: UP|DOWN|CEILING|FLOOR|HALFUP|HALFDOWN|HALFEVEN): Int
В Ride нет типа данных с плавающей точкой. Поэтому, чтобы вычислить 16,252,7, нужно указать base
= 1625, bp
= 2 и exponent
= 27, ep
= 1.
Если функция pow
возвращает, например, 18591057, а параметр rp
= 4, это значит, что результат вычисления равен 1859,1057; в числе 18591057 последние 4 цифры — дробная часть.
# Параметры
Parameter | Description |
---|---|
base : Int | Число a без десятичной точки |
bp : Int | Количество знаков после запятой у a |
exponent : Int | Показатель степени b без десятичной точки |
ep : Int | Количество знаков после запятой у b |
rp : Int | Количество знаков после запятой у результата, от 0 до 8 включительно. Задает точность вычисления |
round : UP|DOWN|CEILING|FLOOR|HALFUP|HALFDOWN|HALFEVEN | Одна из переменных округления |
# Примеры
16.252.7 = 1859,1057168...
pow(1625, 2, 27, 1, 2, HALFUP) # function returns 185911, so the result is: 1859.11
pow(1625, 2, 27, 1, 5, HALFUP) # function returns 185910572, so, the result is: 1859.10572
# Переменные округления
Переменные округления соответствуют методам округления.
Переменные округления используются только в качестве параметров функций log и pow.
Название | Описание |
---|---|
CEILING | Округление вверх (к положительной бесконечности) |
DOWN | Округление к меньшему по модулю (к нулю) |
FLOOR | Округление вниз (к отрицательной бесконечности) |
HALFDOWN | Округление к ближайшему целому, ±0,5 округляется к меньшему по модулю |
HALFEVEN | Округление к ближайшему четному числу |
HALFUP | Округление к ближайшему целому, ±0,5 округляется к большему по модулю |
UP | Округление к большему по модулю (от нуля) |
# Примеры
Число/Метод округления | UP | DOWN | CEILING | FLOOR | HALFUP | HALFDOWN | HALFEVEN |
---|---|---|---|---|---|---|---|
5.5 | 6 | 5 | 6 | 5 | 6 | 5 | 6 |
2.5 | 3 | 2 | 3 | 2 | 3 | 2 | 2 |
1.6 | 2 | 1 | 2 | 1 | 2 | 2 | 2 |
1.1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 |
1.0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
-1.0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1.1 | -2 | -1 | -1 | -2 | -1 | -1 | -1 |
-1.6 | -2 | -1 | -1 | -2 | -2 | -2 | -2 |
-2.5 | -3 | -2 | -2 | -3 | -3 | -2 | -2 |
-5.5 | -6 | -5 | -5 | -6 | -6 | -5 | -6 |