Функции для генерации случайных чисел
Все функции в этом разделе принимают ноль или один аргумент. Единственное использование аргумента (если предоставлен) заключается в предотвращении устранения общих подвыражений, чтобы два разных выполнения одной и той же случайной функции в строке возвращали разные случайные значения.
Связанный контент
Случайные числа генерируются с использованием некриптографических алгоритмов.
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, полученное из распределения Стьюдента.
Синтаксис
Аргументы
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. Значение кодовых точек может лежать вне диапазона назначенного Юникода.
Синтаксис
Аргументы
length— Длина строки в кодовых точках. UInt64.
Возвращаемое значение
- Случайная строка UTF-8. String.
Пример
Запрос:
Результат:
fuzzBits
Синтаксис
Перевертывает биты строки или фиксированной строки s, каждый с вероятностью prob.
Синтаксис
Аргументы
s-StringилиFixedString,prob- постоянное значениеFloat32/64от 0.0 до 1.0.
Возвращаемое значение
Искаженная строка того же типа, что и s.
Пример
Результат: