local z = 50 -- you can change this to the maximum value
local function ARN() -- function starts
local x = math.random(0,z) -- main number
local y = math.random() -- decimal number
local v = (x-(y)) -- I remove y's value from x
print(v) -- I then print it
return v, x, y -- return the values
end
ARN() -- calling the function
我基本上也用十進制數字讓它隨機化。我不知道是否有什么可以讓它更加隨機化。另外,我是編程新手,所以也許一些技巧也會有所幫助!
uj5u.com熱心網友回復:
math.random()已經回傳一個介于 0(包括)和 1(不包括)之間的浮點亂數。您顯然想要一個從 0 到z. 簡單地通過將亂數乘以“縮放”它就z足夠了,并且只需要一次呼叫math.random:
local function ARN() return math.random() * z end
這可能會稍微降低浮點部分的隨機性,但對于小的隨機性z應該不明顯。
您當前的實作是從 0(不包括)到z(包括)。在實踐中,這可能并不重要,但這些是預期的界限嗎?我提出的縮放比例將與 一致math.random,0 表示排他性和z包容性。
至于“隨機性”:math.random使用xoshiro256**并且您幾乎只是在使用math.random,因此您應該具有大致相同的隨機性。不過,這只是“偽”而不是“安全”隨機。
還可以考慮使用隨機種子math.randomseed(os.time() os.clock())等;請注意,種子是全域的,是否要播種取決于您的應用程式(您可能需要一個固定的種子用于測驗目的 fE)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/449147.html
上一篇:如何在串列中的數字之間分配值
