Random 数据类型生成伪随机数和方向。
概要
方法
返回在 [min, max] 范围内均匀分布的伪随机整数。
返回在 [0, 1] 范围内均匀分布的伪随机数。
返回在 [min, max] 范围内均匀分布的伪随机数。
就地均匀打乱表。
返回一个具有伪随机方向的单位向量。
返回一个与原始的状态相同的新 Random 对象。
构造工具
new
返回一个新的 Random 对象。如果您不提供种子 参数,Random 将使用来自内部熵源的种子。
如果您提供种子,它应该在范围[-9007199254740991, 9007199254740991]内,并且 Random 会将其向下四舍五入到 最近的整数。因此,种子为 0、0.99 和 math.random() 都会 生成相同的生成器。如果您需要生成一个种子并存储它 以便稍后检索,请使用 math.random(max)。
参数
代码示例
生成一个伪随机种子,并使用它来创建一个新的 Random 生成器。
数据类型.随机
local max = 2147483647 -- 使用一个大整数
local seed = math.random(max)
local generator = Random.new(seed)
方法
Shuffle
()
就地均匀打乱 tb 的数组部分,使用 NextInteger 来选择索引。如果数组部分有任何 nil "空洞",Shuffle 会抛出错误,因为打乱可能会改变长度。
tb 的哈希部分将被忽略。tb 的任何元方法都不会被调用。
打乱定义为 Fisher-Yates 打乱,因此在给定表大小的情况下,NextInteger 调用的次数在引擎版本之间是有保障的一致。
参数
返回
()