Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
【Lua】如何生成随机数
LUAT
math
float
随机数
生成随机数
众所周知,为了性能考虑,模块的默认底层是不支持float的,那么如果此时希望使用math库生成随机数怎么办呢? #使用Float LOD 只有float lod才支持math库,所以开发者可以使用带Float字样的lod,或者带8955F字样的lod(202F/268F); 但是请注意,这个lod可能带来某种程度的性能下降; #使用rtos.tick()生成伪随机数 废话不多说,上代码: ```lua -- luat math lib require "bit" module(..., package.seeall) local seed = tonumber(tostring(os.time()):reverse():sub(1, 7)) + rtos.tick() function randomseed(val) seed = val end function random() local next = seed next = next * 1103515245 next = next + 12345 local result = (next / 65536) % 2048 next = next * 1103515245 next = next + 12345 result = result * 2 ^ 10 result = bit.bxor(result, (next / 65536) % 1024) next = next * 1103515245 next = next + 12345 result = result * 2 ^ 10 result = bit.bxor(result, (next / 65536) % 1024) seed = next return result end ``` 调用方法: ``` print(random()) ```
发表于 2018-11-15 12:46
阅读 ( 3300 )
分类:
默认分类
0 推荐
打赏
收藏
你可能感兴趣的文章
10、合宙Air模块Luat开发:JSON字符串的生成与解析
2299 浏览
7、合宙Air模块Luat开发:定时器的使用方法
2137 浏览
6、合宙Air模块Luat开发:又是一种新的外设之ADC模数转换,现在我们可以采集模拟量数据了
2223 浏览
5、合宙Air模块Luat开发:GPIO输入常见的两种使用方法及其优劣性
2313 浏览
4、合宙Air模块Luat开发:用GPIO输出功能实现一个简单的LED灯闪烁
2542 浏览
3、合宙Air模块Luat开发:实现用"Printf"把文字格式化以后直接输出
2113 浏览
相关问题
float lod 下 number类型
1 回答
Air208编程
1 回答
Air202设置闹钟“AT+CALA=?”
2 回答
Air202 MQTT如何发送USERNAME PASSWORD ID ?
1 回答
Air200关于SW_DEFAULT_1.0.2_Luat_V0013_Air200_SSL.lod的问题
1 回答
Air202 响应来自AT + CUSD = 1,“* 100#”,15
1 回答
0 条评论
请先
登录
后评论
技术销售Delectate
43 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!