mirror of
https://github.com/lua/lua
synced 2026-09-26 16:17:11 +03:00
'math.randomseed()' returns the seeds it used
A call to 'math.randomseed()' returns the two components of the seed it set, so that they can be used to set that same seed again.
This commit is contained in:
parent
9c28ed05c9
commit
4eefef07ab
4 changed files with 27 additions and 7 deletions
|
|
@ -815,7 +815,7 @@ end
|
|||
-- low-level!! For the current implementation of random in Lua,
|
||||
-- the first call after seed 1007 should return 0x7a7040a5a323c9d6
|
||||
do
|
||||
-- all computations assume at most 32-bit integers
|
||||
-- all computations should work with 32-bit integers
|
||||
local <const> h = 0x7a7040a5 -- higher half
|
||||
local <const> l = 0xa323c9d6 -- lower half
|
||||
|
||||
|
|
@ -840,7 +840,14 @@ do
|
|||
assert(rand * 2^floatbits == res)
|
||||
end
|
||||
|
||||
math.randomseed()
|
||||
do
|
||||
-- testing return of 'randomseed'
|
||||
local <const> x, <const> y = math.randomseed()
|
||||
local res = math.random(0)
|
||||
math.randomseed(x, y) -- should repeat the state
|
||||
assert(math.random(0) == res)
|
||||
-- keep the random seed for following tests
|
||||
end
|
||||
|
||||
do -- test random for floats
|
||||
local randbits = math.min(floatbits, 64) -- at most 64 random bits
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue