lua隨機數種子取隨機數

2021-08-27 21:04:02 字數 578 閱讀 6005

lua需要生成隨機數的需求也是很常見的,為了生成看起來更隨機的數字,我們需要注意以下幾點

我們也需要給隨機數設定隨機數種子:math.randomseed(xx)

lua對隨機數種子也是有一定要求的:不能太相近

lua中的os.time()是基於秒的,不太滿足lua對隨機數種子的要求(如果設定隨機數種子的頻率太高的話)

那怎麼做?

把 os.time()返回的數值字串倒過來再取高位7位。 這樣,即使 os.time()變化很小,隨機數種子也會很大

math.randomseed(tostring(os.time()):reverse():sub(1, 7))
例:

math.randomseed(tostring(os.time()):reverse():sub(1, 7)) –設定時間種子

for i=1, 15 do

print(math.random()) –產生0到1之間的隨機數

print(math.random(1,100)) –產生1到100之間的隨機數

end

**:

隨機數種子與隨機數

本文要討論的內容就是,在c語言中,是如何取得這個隨機數的?乙個語句 rand 它的作用就是隨機取0到rand max之間的任何數。標準指出,rand max值的範圍到少是32767,也就是雙位元組整數的最大值。下面我們用乙個例子來取得從1到6的隨機整數 include include main 第2...

隨機數種子

隨機數 int main 函式rand 是真正的隨機數生成器,而srand 會設定供rand 使用的隨機數種子。如果你在第一次呼叫rand 之前沒有呼叫srand 那麼系統會為你自動呼叫srand 而使用同種子相同的數呼叫 srand 會導致相同的隨機數序列被生成。srand unsigned ti...

隨機數種子

隨機數就是就隨機數種子中取出的數。種子就是個序號,這個序號交給乙個數列管理器,通過這個序號,你從管理器中取出乙個數列,這個數列就是你通過那個序號得到的隨機數。但這個隨技術並不真正隨機。因為它是通過某個演算法的得到。也就是說你給數列管理器同乙個序號將得到同樣乙個 隨機 數列。也就是說種子和隨機數列是一...