查找 lua 中的随机数
2013-4-28 2:14:20
收藏:0
阅读:132
评论:3
我试图使用 lua 生成一个随机数,但它只返回最小的值。例如,如果我运行:
x = math.random(17,41)
print(x)
它返回:
17
出了什么问题?
点赞
用户67432
Lua 使用 C 运行时库的伪随机数生成器,其属性取决于您的平台。例如,在(某些版本的)Windows 上,生成器总是在伪随机序列的相同点初始化,因此在运行程序时始终获取相同的值序列(请参见http://msdn.microsoft.com/en-US/library/f0d4wb4t.aspx)。
您可以使用 math.randomseed 在其他位置开始伪随机序列。您可以使用 os.time 每次运行程序时使用不同的值来初始化它(假设您允许运行之间至少经过一秒钟的时间)。
还要注意,在某些 Windows C 运行时库上,调用 srand(或 Lua 中的 math.randomseed)后获得的第一个伪随机值非常依赖于您传递的值。因此,我建议在调用 math.randomseed 后调用 math.random 一次并忽略其结果。
2013-04-28 02:54:09
用户1190388
这并不一定是真的。所有的随机数都不是完全随机的。作为一个例子,你可以看一下这个工作代码; 它和你提出来的问题是一样的: http://eval.in/17806
可以看到的输出是 38。
引用来自 Doub 的回复:
你可以使用
math.randomseed来启动伪随机序列推进在其他地方。 你可以使用os.time(默认为以秒为单位)在每一次程序运行时初始化一个不同的 值( 假定你允许程序运行间隔至少一秒钟 )。
这是一个在 randomseed 生效的同样程序的例子: http://eval.in/17808
math.randomseed( os.time() )
x = math.random(17,41)
print(x)
2013-04-28 04:48:05
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
你种植了 PRNG(伪随机数生成器)吗?
例如,
math.randomseed(os.time())