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

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

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

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

примечание

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

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 - среднее значение распределения,
  • variance - Float64 - дисперсия распределения.

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

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

Пример

Результат:

randLogNormal

Возвращает случайное число типа Float64, выбранное из логарифмически нормального распределения.

Синтаксис

Аргументы

  • mean - Float64 - среднее значение распределения,
  • variance - 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.

Пример

Результат: