I have written a lua script named "lua_rand_gen" which contains following code:
function random_number_func()
math.randomseed(os.time())
return (math.random(100000000,999999999))
end
print (random_number_func())
when I run the lua_rand_gen script in the terminal in loop , the above function is not generating randome values as shown :
for ((i=0;i<=5;i++)); do lua lua_rand_gen; done
717952767
717952767
717952767
717952767
717952767
717952767
I know this is because os.time() doesn't change till one second. So, how can I get Random number in lua if the time difference between running the lua script is less than 1 sec.
Move
math.randomseed(os.time())outside the function.It seems to be a common misconception that you need to call
math.randomseedbefore each time you callmath.random. This is wrong and will defeat the randomness ofmath.random, especially if you useos.time()as seed, since the seeds will be the same for a whole second.