Функции генерации случайных чисел
Все функции в этом разделе принимают ноль или один аргумент. Единственное использование аргумента (если он предоставлен) - это предотвращение устранения общих подвыражений, так что два разных выполнения одной и той же случайной функции в пределах строки возвращают разные случайные значения.
Связанный контент
Случайные числа генерируются с помощью некриптографических алгоритмов.
rand
Возвращает случайное число UInt32 с равномерным распределением.
Использует линейный конгруэнтный генератор с первоначальным состоянием, полученным из системы, что означает, что хотя оно и кажется случайным, на самом деле оно не является истинно случайным и может быть предсказуемым, если известно первоначальное состояние. Для случаев, где истинная случайность имеет решающее значение, рекомендуется использовать альтернативные методы, такие как системные вызовы или интеграция с внешними библиотеками.
Синтаксис
Псевдоним: rand32
Аргументы
Нет.
Возвращаемое значение
Возвращает число типа UInt32.
Пример
rand64
Возвращает случайное целое число UInt64 (UInt64).
Синтаксис
Аргументы
Нет.
Возвращаемое значение
Возвращает число UInt64 с равномерным распределением.
Использует линейный конгруэнтный генератор с первоначальным состоянием, полученным из системы, что означает, что хотя оно и кажется случайным, на самом деле оно не является истинно случайным и может быть предсказуемым, если известно первоначальное состояние. Для случаев, где истинная случайность имеет решающее значение, рекомендуется использовать альтернативные методы, такие как системные вызовы или интеграция с внешними библиотеками.
Пример
randCanonical
Возвращает случайное число Float64.
Синтаксис
Аргументы
Нет.
Возвращаемое значение
Возвращает значение Float64 между 0 (включительно) и 1 (исключительно).
Пример
randConstant
Генерирует единственный постоянный столбец, заполненный случайным значением. В отличие от rand
, эта функция гарантирует, что одно и то же случайное значение будет появляться в каждой строке сгенерированного столбца, что делает ее полезной для сценариев, требующих последовательного начального случайного значения для строк в одном запросе.
Синтаксис
Аргументы
- [x] (Необязательный): Необязательное выражение, которое влияет на генерируемое случайное значение. Даже если оно предоставлено, результирующее значение все равно останется постоянным в рамках одного выполнения запроса. Разные запросы, использующие одно и то же выражение, вероятно, сгенерируют разные постоянные значения.
Возвращаемое значение
Возвращает столбец типа UInt32, содержащий одно и то же случайное значение в каждой строке.
Детали реализации
Фактический вывод будет различаться для каждого выполнения запроса, даже с одним и тем же необязательным выражением. Необязательный параметр может не значительно изменить сгенерированное значение по сравнению с использованием randConstant
отдельно.
Пример
randUniform
Возвращает случайное Float64 число, равномерно распределенное по интервалу [min
, max
].
Синтаксис
Аргументы
min
-Float64
- левая граница диапазона,max
-Float64
- правая граница диапазона.
Возвращаемое значение
Случайное число типа Float64.
Пример
randNormal
Возвращает случайное Float64 число, выборка из нормального распределения.
Синтаксис
Аргументы
mean
-Float64
- среднее значение распределения,stddev
-Float64
- стандартное отклонение распределения.
Возвращаемое значение
- Случайное число. Float64.
Пример
Результат:
randLogNormal
Возвращает случайное Float64 число, выборка из логнормального распределения.
Синтаксис
Аргументы
mean
-Float64
- среднее значение распределения,stddev
-Float64
- стандартное отклонение распределения.
Возвращаемое значение
- Случайное число. Float64.
Пример
Результат:
randBinomial
Возвращает случайное UInt64 число, выборка из биномиального распределения.
Синтаксис
Аргументы
experiments
-UInt64
- количество экспериментов,probability
-Float64
- вероятность успеха в каждом эксперименте, значение между 0 и 1.
Возвращаемое значение
- Случайное число. UInt64.
Пример
Результат:
randNegativeBinomial
Возвращает случайное UInt64 число, выборка из негативного биномиального распределения.
Синтаксис
Аргументы
experiments
-UInt64
- количество экспериментов,probability
-Float64
- вероятность неудачи в каждом эксперименте, значение между 0 и 1.
Возвращаемое значение
- Случайное число. UInt64.
Пример
Результат:
randPoisson
Возвращает случайное UInt64 число, выборка из распределения Пуассона.
Синтаксис
Аргументы
n
-UInt64
- среднее количество событий.
Возвращаемое значение
- Случайное число. UInt64.
Пример
Результат:
randBernoulli
Возвращает случайное UInt64 число, выборка из распределения Бернулли.
Синтаксис
Аргументы
probability
-Float64
- вероятность успеха, значение между 0 и 1.
Возвращаемое значение
- Случайное число. UInt64.
Пример
Результат:
randExponential
Возвращает случайное Float64 число, выборка из экспоненциального распределения.
Синтаксис
Аргументы
lambda
-Float64
- значение лямбда.
Возвращаемое значение
- Случайное число. Float64.
Пример
Результат:
randChiSquared
Возвращает случайное Float64 число, выборка из распределения Хи-квадрат - распределение суммы квадратов k независимых стандартных нормально распределенных случайных переменных.
Синтаксис
Аргументы
degree_of_freedom
-Float64
- степень свободы.
Возвращаемое значение
- Случайное число. Float64.
Пример
Результат:
randStudentT
Возвращает случайное Float64 число, выборка из t-распределения Стьюдента.
Синтаксис
Аргументы
degree_of_freedom
-Float64
- степень свободы.
Возвращаемое значение
- Случайное число. Float64.
Пример
Результат:
randFisherF
Возвращает случайное Float64 число, выборка из F-распределения.
Синтаксис
Аргументы
d1
-Float64
- степень свободы d1 вX = (S1 / d1) / (S2 / d2)
,d2
-Float64
- степень свободы d2 вX = (S1 / d1) / (S2 / d2)
.
Возвращаемое значение
- Случайное число. Float64.
Пример
Результат:
randomString
Генерирует строку заданной длины, заполненную случайными байтами (включая нулевые байты). Не все символы могут быть печатаемыми.
Синтаксис
Аргументы
length
— Длина строки в байтах. Положительное целое число.
Возвращаемое значение
- Строка, заполненная случайными байтами. String.
Пример
Запрос:
Результат:
randomFixedString
Генерирует бинарную строку заданной длины, заполненную случайными байтами (включая нулевые байты). Не все символы могут быть печатаемыми.
Синтаксис
Аргументы
length
— Длина строки в байтах. UInt64.
Возвращаемое значение
- Строка, заполненная случайными байтами. FixedString.
Пример
Запрос:
Результат:
randomPrintableASCII
Генерирует строку с случайным набором печатаемых ASCII символов. Все символы печатаемы. Если вы передаете length < 0
, поведение функции не определено.
Синтаксис
Аргументы
length
— Длина строки в байтах. Положительное целое число.
Возвращаемое значение
Пример
randomStringUTF8
Генерирует случайную строку заданной длины. Результирующая строка содержит валидные кодовые точки UTF-8. Значения кодовых точек могут выходить за пределы диапазона назначенного Unicode.
Синтаксис
Аргументы
length
— Длина строки в кодовых точках. UInt64.
Возвращаемое значение
- Случайная строка UTF-8. String.
Пример
Запрос:
Результат:
fuzzBits
Синтаксис
Переворачивает биты строки или фиксированной строки s
с вероятностью prob
.
Синтаксис
Аргументы
s
-String
илиFixedString
,prob
- постоянноеFloat32/64
между 0.0 и 1.0.
Возвращаемое значение
Фаззинг-строка того же типа, что и s
.
Пример
Результат: