random和math.random一样吗
lua吧
全部回复
仅看楼主
level 11
怎么感觉返回值有差异
2016年12月23日 11点12分 1
level 11
要是一样就不叫random了……这可是随机数函数,肯定不一样啊
2016年12月23日 14点12分 2
不过你可以先设置同一个seed,然后测试两个函数,返回值肯定一样……大概吧,没用过lua的random
2016年12月23日 14点12分
不过真的可以直接调用random()吗?……5.1表示不行
2016年12月23日 14点12分
总之这两个是一样的!
2016年12月23日 14点12分
@贴吧用户_0XZKy2W [汗]这俩差别是random从0开始,math.random从1开始
2016年12月23日 14点12分
level 7
random是math库函数,所以前面要加math.,他的作用是产生一个随机数,如果随机种子不是固定的,返回的结果一般不同。
2016年12月24日 17点12分 3
level 1
------------------------------------------------------
print("......1......")
math.randomseed(os.time())
for i =1,5 do
print(i,math.random(0,100))
end
print("......2......")
math.randomseed(os.time())
for i =1,5 do
print(i,math.random(0,100))
end
print("......3......")
math.randomseed(os.time())
for i =1,5 do
print(i,math.random(0,100))
end
print("......4......")
math.randomseed(tostring(os.time()):reverse():sub(1,6))
for i =1,5 do
print(i,math.random(0,100))
end
--前三次都没变化
--[[函数说明:
math.randomseed() 随机数种子
os.time() 系统时间
math.random(0,100) 产生随机数0~100之间的整数
随机数种子数相同或者相近的话,随机数队列基本不变。(伪随机的结果短时间 变成可预知性)
第4种写法,在短时间第2次运行 随机队列发生了变化,
主要原因是把 time返回的数值字串倒过来(低位变高位)再取高位6位。这样,即使 time变化很小,
但是因为低位变了高位,种子数值变化却很大,就可以使伪随机序列生成的更好一些
把数值差变得最大化(原本是1秒之差,倒序后变成几万之差)
另外,楼主碰手的那游戏脚本,random可能是构造出来的,封装好的
2017年01月06日 09点01分 5
level 1
random这是编译者自己写的一个函数
math.random这是脚本自带的数学库函数
2017年01月22日 07点01分 6
1