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

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

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

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

примечание

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

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.

Пример

Результат: