Random

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

Random 数据类型生成伪随机数和方向。

概要

构造工具

  • new(seed : number)

    返回一个使用可选种子的新的伪随机生成器。

方法

构造工具

new

返回一个新的 Random 对象。如果您不提供种子 参数,Random 将使用来自内部熵源的种子。

如果您提供种子,它应该在范围[-9007199254740991, 9007199254740991]内,并且 Random 会将其向下四舍五入到 最近的整数。因此,种子为 0、0.99 和 math.random() 都会 生成相同的生成器。如果您需要生成一个种子并存储它 以便稍后检索,请使用 math.random(max)

参数

seed: number

代码示例

生成一个伪随机种子,并使用它来创建一个新的 Random 生成器。

数据类型.随机

local max = 2147483647 -- 使用一个大整数
local seed = math.random(max)
local generator = Random.new(seed)

方法

NextInteger

返回在 [min, max] 范围内均匀分布的伪随机整数。

参数

min: number
max: number

返回

NextNumber

返回范围在 0 到 1(含)的均匀伪随机实数。

返回

NextNumber

返回范围在 minmax(含)的均匀伪随机实数。

参数

min: number
max: number

返回

Shuffle

()

就地均匀打乱 tb 的数组部分,使用 NextInteger 来选择索引。如果数组部分有任何 nil "空洞",Shuffle 会抛出错误,因为打乱可能会改变长度。

tb 的哈希部分将被忽略。tb 的任何元方法都不会被调用。

打乱定义为 Fisher-Yates 打乱,因此在给定表大小的情况下,NextInteger 调用的次数在引擎版本之间是有保障的一致。

参数

tb: table

返回

()

NextUnitVector

返回一个具有伪随机方向的单位向量。此函数返回的向量在单位球体上均匀分布。

返回

一个具有伪随机方向的单位向量。

Clone

返回一个与原始状态相同的新 Random 对象。

返回