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
()
使用 NextInteger 來均勻洗牌 tb 的數組部分。
如果數組部分有任何 nil "孔",洗牌將會拋出錯誤,因為洗牌可能會改變長度。
tb 的雜湊部分將被忽略。tb 的任何元方法不會被調用。
用 Fisher-Yates 洗牌算法定義洗牌,因此對於給定大小的表, NextInteger 調用的次數在引擎版本之間是保持一致的。
參數
返回
()