lua随机数的问题】的更多相关文章

在看 lua 的 math.random 函数的时候发现一个问题,就是在没有重新设置随机种子的时候, random 返回的前几个随机数并不是那么特别随机,尤其当随机范围很小的时候,比如 100 左右的时候基本上都是返回 1 ,看了源码后发现内部调用是( lua5.1 源码): lua_Number r = (lua_Number)(rand()%RAND_MAX) / (lua_Number)RAND_MAX; 这其实是生成了一个 0~1 之间的小数,然后根据 math.random 的参数个数…
用法一:  不给范围,就随机算一个0~1之间的小数: 用法二:给一个参数,就取1~n之间的随机数 用法三:给两个参数,就取m~n之间的随机数 math.randomseed()用法:     由于C中所产生的随机序列是固定的.也就是每次执行时取得的随机数是一样的.     lua的random函数只是对ansi c的随机函数的一次封装.所以依然存在这个问题. 在lua虚拟机启动的时候设置一个随机种子,让系统产生的随机序列不相同, 但使用randomseed的时候也还要注意一个问题,那就是做种子的…
function rnd(max)  --lua的第1次random数不靠谱,取第3次的靠谱  local ret=0  math.randomseed(os.time())  for i=1,3 do    n = math.random(max)    ret=n  end  return retendprint(rnd(10))…
一.引言               redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功能.lua脚本是用C语言写的,体积很小,运行速度很快,并且每次的执行都是作为一个原子事务来执行的,我们可以在其中做很多的事情.由于篇幅很多,一次无法概述全部,这个系列可能要通过多篇文章的形式来写,好了,今天我们进入正题吧.二.lua简介                  …
转自:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 JNI:允许Java代码与其它语言写的代码进行交互 cocos2d-x好像对tmx中使用bmp图片不支持 BombMan.win32.exe 中的 0x10007f50 (libcocos2d.dll) 处最可能的异常: 0xC0000005: 写入位置 0x0000000c 时发生访问冲突 “BombMan.…
也许很多人会奇怪为什么使用LUA的时候,第一个随机数总是固定,而且常常是最小的那个值,下面我就简要的说明一下吧,说得不好,还请谅解.我现在使用的4.0版本的LUA,看的代码是5.0的,呵呵 LUA4.0版本中的自带函数库中有两个关于随机数的函数,一个是random,一个是randomseed.random有两个参数,用来设置随机数的范围,比如random(1,100)设置随机数的范围为1至100之间.由于C中所产生的随机序列是固定的,并且第一个随机数比较小,只有41.LUA重新设计了random…
lua需要生成随机数的需求也是很常见的,为了生成看起来更随机的数字,我们需要注意以下几点 我们也需要给随机数设置随机数种子:math.randomseed(xx) lua对随机数种子也是有一定要求的:不能太相近 lua中的os.time()是基于秒的,不太满足lua对随机数种子的要求(如果设置随机数种子的频率太高的话) 那怎么做? 把 os.time()返回的数值字串倒过来再取高位7位. 这样,即使 os.time()变化很小,随机数种子也会很大 math.randomseed(tostring…
Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]]) 1. math.randomseed(n) 接收一个整数 n 作为随机序列种子.2. math.random([n [, m]]) 有三种用法: 无参调用, 产生 (0,1) 之间的浮点随机数: 只有参数 n, 产生 1-n 之间的整数: 有两个参数 n, m, 产生 n-m 之间的随机整数 对于相同的随机种子, 生成的随即序列一定是相同的.所以程序每次运行, 赋予不同的种…
号外:惭愧,工作后几乎没有写博客了,其实是有时间的(每周单休),只是厌烦对着屏幕了,还有懒. 现在老板换人了,时间会多点,估计正常就每周双休了,决定还是每周写两篇(不一定是love2d), 写不出就翻译老外的. 有两种方法: 1.把生成的数放到一个表里面,每次随机时判断这个表里是否有,若有再随机一次 2.先生成一个连续的数字表t,每次随机一个数n,把t[n]保存,并移除t[n] 代码如下: --产生1~~m,若有n的则m~~n的数字表 function table.fillNum(m,n) lo…
需要用到两个函数: (1)math.randomseed(N):  接收一个整数N作为随机序列种子 (2)math.random([n, [m]]): 这个函数有三种用法,分别是不跟参数,此时产生(0,1)之间的随机浮点数:有一个参数n,产生1到n之间的整数:有2个参数n和m,产生n到m之间的随机整数. 最常用的方法是 math.randomseed(os.time()) for i=0, 10 do local n = math.random(10) print(n) end math.ran…
local function GetRandomNumList(len) local rsList = {} ,len do table.insert(rsList,i) end local num,tmp ,len do num = ,len) tmp = rsList[i] rsList[i] = rsList[num] rsList[num] = tmp end return rsList end…
今天在学习lua,熟悉项目代码的过程中,发现string.gsub好高级,所以在此mark下. 以下是lua5.1的官方文档介绍. string.gsub (s, pattern, repl [, n]) Returns a copy of s in which all occurrences of the pattern have been replaced by a replacement string specified by repl, which may be a string, a…
本篇主要是参考 lua连续随机数 这篇文章完成.大家可以去原贴查看学习. 生成随机数组,暂时发现两种方法 1.把生成的数放到一个表里面,每次随机时判断这个表里是否有,若有再随机一次(问了朋友,很多人都想到这个方法) 2.先生成一个连续的数字表t,每次随机一个数n,把t[n]保存,并移除t[n] 首先,说一下我的真实需求是给定一定范围,然后生成指定个数的不重复随机数组.这个给定范围,可能很大,可能很小,指定个数可能比数组个数大,也可能只比数组个数小一点,也可能比数组个数小很多. 例如,1.从1~1…
openssl rand -hex n (n is number of characters) LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo; (生成随机密码16) shell 生成指定范围随机数与随机字符串 热度5 评论 245 www.BkJia.Com  网友分享于:  2014-04-23 12:04:43     浏览数10854次   shell 生成指定范围随机数与随机字符串   1.使用系统的 $…
这里只介绍和插件编写比较有关的几个函数. 详细的Lua手册请参照Lua Reference Manual 5.1. table函数库 一部分的table函数只对其数组部分产生影响, 而另一部分则对整个table均产生影响. 下面会分开说明. table.concat(table, sep,  start, end) concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定…
他今天就开始学习Redis源代码的一些工具来实现,在任何一种语言工具.算法实现的原理应该是相同的,一些比較经典的算法.比方说我今天看的Crc循环冗余校验算法和rand随机数产生算法. CRC算法全称循环冗余校验算法.CRC校验的基本思想是利用线性编码理论,在发送端依据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去. 在接收端, 则依据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出…
最近在做K线的项目中,需要计算商品的分时数据.为了保证多台机器对同一商品的计算的有序性,所以在Redis中进行计算,同时为了保证在分时数据计算过程的原子性所以使用了LUA脚本,Redis内置了对LUA脚本的支持,并且在计算过程中保证了脚本中执行的原子性.因此在开发过程中对Redis对Lua的支持进行了学习.从 Redis 2.6.0 版本开始,通过内置的 Lua 解释器,可以使用EVAL命令对 Lua 脚本进行求值.以下将Redis对LUA的支持进行总结. EVAL 从Redis2.6.0版本开…
Lua与javascript的差异 2010-03-08 Lua模拟器js方案 1.语法级模拟 lua与js语言差异 1.1注释 js 为//,lua为--. 1.2变量 js利用var来声明全局变量不存在局部变量,lua则不需要直接定位则为全局变量,local声明则为局部变量. 1.3运算符 js + - * / % ++ -- = += -= *= /= %= 支持字符串 + txt1 = "what a very"; txt2 = "nice day"; tx…
0x01 起因 几天前学弟给我介绍他用nginx搭建的反代,代理了谷歌和维基百科. 由此我想到了一些邪恶的东西:反代既然是所有流量走我的服务器,那我是不是能够在中途做些手脚,达到一些有趣的目的. openresty是一款结合了nginx和lua的全功能web服务器,我感觉其角色和tornado类似,既是一个中间件,也结合了一个后端解释器.所以,我们可以在nginx上用lua开发很多"有趣"的东西. 所以,这篇文章也是由此而来. 0x02 openresty的搭建 openresty是国…
EVAL简介 Redis2.6加入了对Lua脚本的支持.Lua脚本可以被用来扩展Redis的功能,并提供更好的性能. 在<Redis拾遗>中曾经引用了<Redis in Action>中的一套悲观锁的实现,使用Lua脚本实现同样的功能,性能提高1倍以上.在另一个自动补全的例子中,使用Lua脚本比WATH/MULTI/EXEC快了20倍. EVAL 和 EVALSHA 命令是从 Redis 2.6.0 版本开始的,使用内置的 Lua 解释器,可以对 Lua 脚本进行求值. EVAL的…
[数学库] 数学库(math)由一组标准的数学函数构成.这里主要介绍几个常用的函数,其它的大家可以自行百度解决. 三角函数(sin,cos,tan……)所有的三角函数都使用弧度单位,可以用函数deg(角度)和rad(弧度)来转换角度和弧度.示例代码: ))) -- 0.5 谨记:三角函数的参数都是弧度,在实际使用中不要忘了,是弧度. 取整函数(floor,ceil) floor:返回不大于x的最大整数:向下取整:ceil:返回不小于x的最大整数:向上取整.示例代码: 最大值和最小值(max,mi…
原文链接:http://blog.csdn.net/zhangxaochen/article/details/8095007 Lua 生成随机数需要用到两个函数: math.randomseed(xx), math.random([n [, m]]) 1. math.randomseed(n) 接收一个整数 n 作为随机序列种子. 2. math.random([n [, m]]) 有三种用法: 无参调用, 产生 (0,1) 之间的浮点随机数: 只有参数 n, 产生 1-n 之间的整数: 有两个…
Lua之math函数: 转载请注明出处:http://www.cnblogs.com/jietian331/p/8032555.html abs 取绝对值 math.abs(-15) 15 acos 反余弦函数 math.acos(0.5) 1.04719755 asin 反正弦函数 math.asin(0.5) 0.52359877 atan2 x / y的反正切值 math.atan2(90.0, 45.0) 1.10714871 atan 反正切函数 math.atan(0.5) 0.46…
Lua 获取随机值 --获取随机值,指定上限和下限 function getRandom(min,max) -- 接收一个整数n作为随即序列的种子 math.randomseed(os.time()) ----然后不断产生随机数 --[[ for i=1, 5 do print(math.random(100)) end]]-- return math.random(min,max) end 获取当前时间 function getNow() local nowTime = os.date("%Y…
Lua基本语法-书写规范和常用函数 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 String Operation -- 字符串操作 2 Table -- 表 3 Table Operation -- 表的相关操作 4 Class -- 类 5 Math -- 数学函数 支持 May Be -- 搞开发,总有一天要做的事! 1 String Operation -- 字符串操作 Lua 中自带了一些…
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一. 目标 使用Redis做分布式缓存:使用lua API来访问redis缓存:使用nginx向客户端提供服务,ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求.url请求nginx服务器,然后lua查询redis,返回json数据. 二.准备工作 系统环境:Ubuntu 14.0 (64位) Redis服务安装:apt-get install redi…
1 .Lua生成随机数: Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]]) 1. math.randomseed(n) 接收一个整数 n 作为随机序列种子.2. math.random([n [, m]]) 有三种用法: 无参调用, 产生 (0,1) 之间的浮点随机数: 只有参数 n, 产生 1-n 之间的整数: 有两个参数 n, m, 产生 n-m 之间的随机整数 注:os.time() 返回的时间是秒级的, 不够精确,…
转自:http://www.runoob.com/manual/lua53doc/manual.html 1 – 简介 Lua 是一门扩展式程序设计语言,被设计成支持通用过程式编程,并有相关数据描述设施. 同时对面向对象编程.函数式编程和数据驱动式编程也提供了良好的支持. 它作为一个强大.轻量的嵌入式脚本语言,可供任何需要的程序使用. Lua 由 clean C(标准 C 和 C++ 间共通的子集) 实现成一个库. 作为一门扩展式语言,Lua 没有 "main" 程序的概念: 它只能 …
数学类主要有Vec2(坐标向量).Size(尺寸).Rect(矩形). 创建 在Lua中创建的 Vec2.Size.Rect 都是一个table类型. 其中只有相应的成员变量,没有相关的函数运算. cc.p(x, y) -- 构造 Vec2 cc.size(width, height) -- 构造 Size cc.rect(x, y, width, height) -- 构造 Rect 坐标向量运算 Lua中常用的向量运算如下: 返回值为bool -- 直线AB与直线CD是否相交 cc.pIsL…
1. CentOS7 Tomcat 启动过程很慢 在centos启动官方的tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的: <code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro…