Перейти к основному содержимому
Перейти к основному содержимому

Функции для генерации случайных чисел

Все функции в этом разделе принимают ноль или один аргумент. Единственное использование аргумента (если предоставлен) заключается в предотвращении устранения общих подвыражений, чтобы два разных выполнения одной и той же случайной функции в строке возвращали разные случайные значения.

Связанный контент

примечание

Случайные числа генерируются с использованием некриптографических алгоритмов.

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, полученное из нормального распределения.

Синтаксис

Аргументы

Возвращаемое значение

  • Случайное число. Float64.

Пример

Результат:

randLogNormal

Возвращает случайное число 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 — Длина строки в байтах. Положительное целое число.

Возвращаемое значение

  • Строка со случайным набором печатаемых ASCII символов. String

Пример

randomStringUTF8

Генерирует случайную строку заданной длины. Результирующая строка содержит действительные кодовые точки UTF-8. Значение кодовых точек может лежать вне диапазона назначенного Юникода.

Синтаксис

Аргументы

  • length — Длина строки в кодовых точках. UInt64.

Возвращаемое значение

  • Случайная строка UTF-8. String.

Пример

Запрос:

Результат:

fuzzBits

Синтаксис

Перевертывает биты строки или фиксированной строки s, каждый с вероятностью prob.

Синтаксис

Аргументы

  • s - String или FixedString,
  • prob - постоянное значение Float32/64 от 0.0 до 1.0.

Возвращаемое значение

Искаженная строка того же типа, что и s.

Пример

Результат: