# [Ride v5] Математические функции
⚠️ Это документация Стандартной библиотеки версии 5. Рекомендуем использовать версию 6. Перейти к версии 6
Название | Описание | Сложность |
---|---|---|
fraction(Int, Int, Int): Int | Умножает два целых числа и делит на третье без переполнения | 14 |
fraction(Int, Int, Int, Union): Int | Умножает два целых числа и делит на третье без переполнения, применяя указанный метод округления | 17 |
fraction(BigInt, BigInt, BigInt): BigInt | Умножает два больших целых числа и делит на третье без переполнения | 128 |
fraction(BigInt, BigInt, BigInt, Union): BigInt | Умножает два больших целых числа и делит на третье без переполнения, применяя указанный метод округления | 128 |
log(Int, Int, Int, Int, Int, Union): Int | Вычисляет логарифм числа по заданному основанию | 100 |
log(BigInt, Int, BigInt, Int, Int, Union): BigInt | Вычисляет логарифм числа по заданному основанию с высокой точностью | 200 |
median(List[Int]): Int | Возвращает медиану списка целых чисел | 20 |
median(List[BigInt]): BigInt | Возвращает медиану списка больших целых чисел | 160 |
pow(Int, Int, Int, Int, Int, Union): Int | Возводит число в степень | 100 |
pow(BigInt, Int, BigInt, Int, Int, Union): BigInt | Возводит число в степень с высокой точностью | 200 |
# fraction(Int, Int, Int): Int
Умножает целые числа a
и b
и делит на целое число c
без переполнения.
Результат a × b / c
не должен превышать максимальное целочисленное значение 9 223 372 036 854 755 807.
Используется метод округления DOWN, см. Переменные округления ниже.
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
# fraction(Int, Int, Int, Union): Int
Умножает целые числа a
и b
и делит на целое число c
без переполнения, применяя указанный метод округления.
Результат a × b / c
не должен превышать максимальное целочисленное значение 9 223 372 036 854 755 807.
fraction(a: Int, b: Int, c: Int, round: DOWN|CEILING|FLOOR|HALFUP|HALFEVEN): Int
# Параметры
Параметр | Описание |
---|---|
a : Int | Целое a |
b : Int | Целое b |
c : Int | Целое c |
round : DOWN|CEILING|FLOOR|HALFUP|HALFEVEN | Одна из переменных округления |
# fraction(BigInt, BigInt, BigInt): BigInt
Умножает большие целые числа a
и b
и делит на большое целое число c
без переполнения.
Результат a × b / c
не должен превышать максимальное значение большого целого.
Используется метод округления DOWN, см. Переменные округления ниже.
fraction(a: BigInt, b: BigInt, c: BigInt): BigInt
# Параметры
Параметр | Описание |
---|---|
a : BigInt | Большое целое a |
b : BigInt | Большое целое b |
c : BigInt | Большое целое c |
# fraction(BigInt, BigInt, BigInt, Union): BigInt
Умножает большие целые числа a
и b
и делит на большое целое число c
без переполнения, применяя указанный метод округления.
Результат a × b / c
не должен превышать максимальное значение большого целого.
fraction(a: BigInt, b: BigInt, c: BigInt, round: DOWN|CEILING|FLOOR|HALFUP|HALFEVEN): BigInt
# Параметры
Параметр | Описание |
---|---|
a : BigInt | Большое целое a |
b : BigInt | Большое целое b |
c : BigInt | Большое целое c |
round : DOWN|CEILING|FLOOR|HALFUP|HALFEVEN | Одна из переменных округления |
# log(Int, Int, Int, Int, Int, Union): Int
Вычисляет log
b
a
.
log(value: Int, vp: Int, base: Int, bp: Int, rp: Int, round: DOWN|CEILING|FLOOR|HALFUP|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 , от 0 до 8 включительно |
base : Int | Основание логарифма b без десятичной точки |
bp : Int | Количество знаков после запятой у b , от 0 до 8 включительно |
rp : Int | Количество знаков после запятой у результата, от 0 до 8 включительно. Задает точность вычисления |
round : DOWN|CEILING|FLOOR|HALFUP|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
# log(BigInt, Int, BigInt, Int, Int, Union): BigInt
Вычисляет log
b
a
с высокой точностью.
log(value: BigInt, ep: Int, base: BigInt, bp: Int, rp: Int, round: DOWN|CEILING|FLOOR|HALFUP|HALFEVEN): BigInt
В Ride нет типа данных с плавающей точкой. Поэтому, чтобы вычислить log
2,716,25, нужно указать value
= 1625, vp
= 2 и base
= 27, bp
= 1.
Если функция log
возвращает, например, 2807035420964590265, а параметр rp
= 18, это значит, что результат вычисления равен 2,807035420964590265; в числе 2807035420964590265 последние 18 цифр — дробная часть.
# Параметры
Параметр | Описание |
---|---|
value : BigInt | Число a без десятичной точки |
vp : Int | Количество знаков после запятой у a , от 0 до 18 включительно |
base : BigInt | Основание логарифма b без десятичной точки |
bp : Int | Количество знаков после запятой у b , от 0 до 18 включительно |
rp : Int | Количество знаков после запятой у результата, от 0 до 18 включительно. Задает точность вычисления |
round : DOWN|CEILING|FLOOR|HALFUP|HALFEVEN | Одна из переменных округления |
# median(List[Int]): Int
Возвращает медиану списка целых чисел. Завершается ошибкой, если список пустой.
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
# median(List[BigInt]): BigInt
Возвращает медиану списка больших целых чисел. Завершается ошибкой, если список пустой или содержит более 100 элементов.
median(arr: List[BigInt]): BigInt
# Параметры
Параметр | Описание |
---|---|
arr : List[BigInt] | Список больших целых чисел |
# pow(Int, Int, Int, Int, Int, Union): Int
Вычисляет a
b
.
pow(base: Int, bp: Int, exponent: Int, ep: Int, rp: Int, round: DOWN|CEILING|FLOOR|HALFUP|HALFEVEN): Int
В Ride нет типа данных с плавающей точкой. Поэтому, чтобы вычислить 16,252,7, нужно указать base
= 1625, bp
= 2 и exponent
= 27, ep
= 1.
Если функция pow
возвращает, например, 18591057, а параметр rp
= 4, это значит, что результат вычисления равен 1859,1057; в числе 18591057 последние 4 цифры — дробная часть.
# Параметры
Параметр | Описание |
---|---|
base : Int | Число a без десятичной точки |
bp : Int | Количество знаков после запятой у a , от 0 до 8 включительно |
exponent : Int | Показатель степени b без десятичной точки |
ep : Int | Количество знаков после запятой у b , от 0 до 8 включительно |
rp : Int | Количество знаков после запятой у результата, от 0 до 8 включительно. Задает точность вычисления |
round : DOWN|CEILING|FLOOR|HALFUP|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
# pow(BigInt, Int, BigInt, Int, Int, Union): BigInt
Вычисляет a
b
с высокой точностью.
pow(base: BigInt, bp: Int, exponent: BigInt, ep: Int, rp: Int, round: DOWN|CEILING|FLOOR|HALFUP|HALFEVEN): BigInt
В Ride нет типа данных с плавающей точкой. Поэтому, чтобы вычислить 16,252,7, нужно указать base
= 1625, bp
= 2 и exponent
= 27, ep
= 1.
Если функция pow
возвращает, например, 1859105716849757217692, а параметр rp
= 18, это значит, что результат вычисления равен 1859,105716849757217692; в числе 1859105716849757217692 последние 18 цифр — дробная часть.
# Параметры
Параметр | Описание |
---|---|
base : BigInt | Число a без десятичной точки |
bp : Int | Количество знаков после запятой у a , от 0 до 18 включительно |
exponent : BigInt | Показатель степени b без десятичной точки |
ep : Int | Количество знаков после запятой у b , от 0 до 18 включительно |
rp : Int | Количество знаков после запятой у результата, от 0 до 18 включительно. Задает точность вычисления |
round : DOWN|CEILING|FLOOR|HALFUP|HALFEVEN | Одна из переменных округления |
# Переменные округления
Переменные округления соответствуют методам округления.
Переменные округления используются только в качестве параметров функций fraction
, log
, pow
.
Название | Описание |
---|---|
DOWN | Округление к меньшему по модулю (к нулю) |
CEILING | Округление вверх (к положительной бесконечности) |
FLOOR | Округление вниз (к отрицательной бесконечности) |
HALFUP | Округление к ближайшему целому, ±0,5 округляется к большему по модулю |
HALFEVEN | Округление к ближайшему целому, ±0,5 округляется к четному числу |
# Примеры
Число/Метод округления | DOWN | CEILING | FLOOR | HALFUP | HALFEVEN |
---|---|---|---|---|---|
5.5 | 5 | 6 | 5 | 6 | 6 |
2.5 | 2 | 3 | 2 | 3 | 2 |
1.6 | 1 | 2 | 1 | 2 | 2 |
1.1 | 1 | 2 | 1 | 1 | 1 |
1.0 | 1 | 1 | 1 | 1 | 1 |
-1.0 | -1 | -1 | -1 | -1 | -1 |
-1.1 | -1 | -1 | -2 | -1 | -1 |
-1.6 | -1 | -1 | -2 | -2 | -2 |
-2.5 | -2 | -2 | -3 | -3 | -2 |
-5.5 | -5 | -5 | -6 | -6 | -6 |