当前位置:  开发笔记 > 编程语言 > 正文

为什么lua中某些平台上的第一个随机数始终相同?

如何解决《为什么lua中某些平台上的第一个随机数始终相同?》经验,为你挑选了1个好方法。

请考虑以下lua代码段:

local time = os.time()
for _= 1, 10 do
    time = time + 1
    print('Seeding with ' .. time)
    math.randomseed(time)
    for i = 1, 5 do
        print('\t' .. math.random(100))
    end
end

在Linux机器上,结果如预期的那样是随机数.但似乎至少在Mac OS X上,改变种子后的第一个随机数总是一样的!

我猜这与Lua依赖C rand()函数生成随机数这一事实有关,但有人有解释吗?

编辑:这是linux机器上面代码输出的摘录(即输出是预期的):

$ lua test.lua
Seeding with 1232472273
    69
    30
    83
    59
    84
Seeding with 1232472274
    5
    21
    63
    91
    27
[...]

在OS X机器上,"Seeding with ..."之后的第一个数字始终为66.



1> dasony..:

检查这些链接.

http://lua-users.org/lists/lua-l/2007-03/msg00564.html

http://lua-users.org/lists/lua-l/2007-03/msg00572.html

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有