跳到主要内容
跳到主要内容

用于生成随机数的函数

本节中的所有函数接受零个或一个参数。参数的唯一用途(如果提供)是防止 公共子表达式消除,以确保同一行中对同一随机函数的两次不同执行返回不同的随机值。

相关内容

备注

随机数是通过非密码算法生成的。

rand

返回均匀分布的随机 UInt32 数字。

使用线性同余生成器,初始状态来源于系统,这意味着虽然它看起来是随机的,但并不是真正的随机,如果知道初始状态,则可以预测。在真正的随机性至关重要的场景中,考虑使用系统级调用或集成外部库等替代方法。

语法

别名: rand32

参数

无。

返回值

返回类型为 UInt32 的数字。

示例

rand64

返回随机 UInt64 整数 (UInt64)。

语法

参数

无。

返回值

返回均匀分布的 UInt64 数字。

使用线性同余生成器,初始状态来源于系统,这意味着虽然它看起来是随机的,但并不是真正的随机,如果知道初始状态,则可以预测。在真正的随机性至关重要的场景中,考虑使用系统级调用或集成外部库等替代方法。

示例

randCanonical

返回随机 Float64 数字。

语法

参数

无。

返回值

返回介于 0(包含)和 1(不包含)之间的 Float64 值。

示例

randConstant

生成单个常量列,其值为随机值。与 rand 不同,此函数确保在生成的列的每一行中显示相同的随机值,这使得在单个查询中需要一致随机种子的情况非常有用。

语法

参数

  • [x](可选): 影响生成随机值的可选表达式。即使提供,结果值在同一查询执行中仍将是常量。使用相同表达式的不同查询很可能会生成不同的常值。

返回值

返回类型为 UInt32 的列,在每一行中包含相同的随机值。

实现细节

对于每次查询执行,实际输出都会不同,即使使用相同的可选表达式。可选参数可能不会显著改变生成的值,与单独使用 randConstant 相比。

示例

randUniform

返回从区间 [min, max] 均匀抽取的随机 Float64。

语法

参数

  • min - Float64 - 范围的左边界,
  • max - Float64 - 范围的右边界。

返回值

返回类型为 Float64 的随机数字。

示例

randNormal

返回从 正态分布 中抽取的随机 Float64。

语法

参数

  • mean - Float64 - 分布的平均值,
  • variance - Float64 - 分布的 方差

返回值

示例

结果:

randLogNormal

返回从 对数正态分布 中抽取的随机 Float64。

语法

参数

  • mean - Float64 - 分布的平均值,
  • variance - Float64 - 分布的 方差

返回值

示例

结果:

randBinomial

返回从 二项分布 中抽取的随机 UInt64。

语法

参数

  • experiments - UInt64 - 实验次数,
  • probability - Float64 - 每次实验成功的概率,介于 0 和 1 之间的值。

返回值

示例

结果:

randNegativeBinomial

返回从 负二项分布 中抽取的随机 UInt64。

语法

参数

  • experiments - UInt64 - 实验次数,
  • probability - Float64 - 每次实验失败的概率,介于 0 和 1 之间的值。

返回值

示例

结果:

randPoisson

返回从 泊松分布 中抽取的随机 UInt64。

语法

参数

  • n - UInt64 - 发生次数的平均数量。

返回值

示例

结果:

randBernoulli

返回从 伯努利分布 中抽取的随机 UInt64。

语法

参数

  • probability - Float64 - 成功的概率,介于 0 和 1 之间的值。

返回值

示例

结果:

randExponential

返回从 指数分布 中抽取的随机 Float64。

语法

参数

  • lambda - Float64 - lambda 值。

返回值

示例

结果:

randChiSquared

返回从 卡方分布 中抽取的随机 Float64 - 这是 k 个独立标准正态随机变量平方和的分布。

语法

参数

  • degree_of_freedom - Float64 - 自由度。

返回值

示例

结果:

randStudentT

返回从 学生 t 分布 中抽取的随机 Float64。

语法

参数

  • degree_of_freedom - Float64 - 自由度。

返回值

示例

结果:

randFisherF

返回从 F 分布 中抽取的随机 Float64。

语法

参数

  • d1 - Float64 - X = (S1 / d1) / (S2 / d2) 中的 d1 自由度,
  • d2 - Float64 - X = (S1 / d1) / (S2 / d2) 中的 d2 自由度。

返回值

示例

结果:

randomString

生成指定长度的字符串,填充随机字节(包括零字节)。并非所有字符都是可打印的。

语法

参数

  • length — 字符串长度(以字节为单位)。正整数。

返回值

  • 用随机字节填充的字符串。 String

示例

查询:

结果:

randomFixedString

生成指定长度的二进制字符串,填充随机字节(包括零字节)。并非所有字符都是可打印的。

语法

参数

  • length — 字符串长度(以字节为单位)。 UInt64

返回值

示例

查询:

结果:

randomPrintableASCII

生成一串随机的 ASCII 字符。所有字符都是可打印的。 如果你传递 length < 0,函数的行为是未定义的。

语法

参数

  • length — 字符串长度(以字节为单位)。正整数。

返回值

  • 一串包含随机 ASCII 可打印字符的字符串。 String

示例

randomStringUTF8

生成指定长度的随机字符串。结果字符串包含有效的 UTF-8 码点。码点的值可能超出分配给Unicode的范围。

语法

参数

  • length — 字符串长度(以码点为单位)。 UInt64

返回值

  • UTF-8 随机字符串。 String

示例

查询:

结果:

fuzzBits

语法

翻转字符串或固定字符串 s 的每一位,概率为 prob

语法

参数

  • s - StringFixedString
  • prob - 介于 0.0 和 1.0 之间的常量 Float32/64

返回值

模糊字符串,与 s 具有相同类型。

示例

结果: