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

Функции Генерации Случайных Чисел

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

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

примечание

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

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

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

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

Пример

randomStringUTF8

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

Синтаксис

Аргументы

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

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

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

Пример

Запрос:

Результат:

fuzzBits

Синтаксис

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

Синтаксис

Аргументы

  • s - String или FixedString,
  • prob - константа Float32/64 между 0.0 и 1.0.

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

Зашумленная строка с тем же типом, что и s.

Пример

Результат: