【技术实现步骤摘要】
一种生成随机数的方法和装置
本公开是关于电子
,尤其是关于一种生成随机数的方法和装置。
技术介绍
随着电子技术的发展,手机、计算机等终端得到了广泛的应用,相应的终端功能越来越丰富。终端在实现某些功能时,往往需要生成随机数,比如生成[0,1)之间的64位双精度浮点数。生成[0,1)之间的64位双精度浮点数的方法一般是:生成64位整型随机数,然后,采用cvtsi2sd指令将64位整型随机数转换为浮点随机数,最后,将转换的浮点随机数乘以1与64位双精度浮点数中的最大值的商,得到随机生成结果。在实现本公开的过程中,专利技术人发现至少存在以下问题:基于上述处理方式,在得到64位浮点数时,需要执行耗时较长的cvtsi2sd指令和乘法运算,从而,导致随机数的生成效率较低。
技术实现思路
为了克服相关技术中存在的随机数的生成效率较低的问题,本公开提供了一种生成随机数的方法和装置。所述技术方案如下:根据本公开实施例的第一方面,提供一种生成随机数的方法,所述方法包括:随机生成第一预设位数的第一整数;通过将所述第一整数与预设数值进行逻辑运算,将所述第一整数转化为位于第一预设区间内的第 ...
【技术保护点】
一种生成随机数的方法,其特征在于,所述方法包括:随机生成第一预设位数的第一整数;通过将所述第一整数与预设数值进行逻辑运算,将所述第一整数转化为位于第一预设区间内的第一浮点数,其中,所述第一预设区间为[0.5,1)或(‑1,‑0.5];根据赋值bzhi指令和所述第一整数的最高位的数值,得到第二浮点数,其中,所述第二浮点数为零或者区间调整偏移量;将所述第一浮点数与所述第二浮点数相加,得到位于第二预设区间内的所述第一预设位数的浮点数,作为随机数生成结果,其中,所述第二预设区间为[0,1)。
【技术特征摘要】
1.一种生成随机数的方法,其特征在于,所述方法包括:随机生成第一预设位数的第一整数;通过将所述第一整数与预设数值进行逻辑运算,将所述第一整数转化为位于第一预设区间内的第一浮点数,其中,所述第一预设区间为[0.5,1)或(-1,-0.5];根据赋值bzhi指令和所述第一整数的最高位的数值,得到第二浮点数,其中,所述第二浮点数为零或者区间调整偏移量;将所述第一浮点数与所述第二浮点数相加,得到位于第二预设区间内的所述第一预设位数的浮点数,作为随机数生成结果,其中,所述第二预设区间为[0,1)。2.根据权利要求1所述的方法,其特征在于,所述通过将所述第一整数与预设数值进行逻辑运算,将所述第一整数转化为位于第一预设区间内的第一浮点数,包括:通过将所述第一整数与第一预设数值进行与运算,得到第二整数;通过将所述第二整数与第二预设数值进行或运算,得到第一浮点数,其中,所述第一预设数值的最高位和从最低位开始的第二预设位数的数值为1、剩余位数的数值为零,所述第二预设数值的从最低位开始的第二预设位数的数值为零、剩余位数的数值为[0.5,1)对应的浮点数的最高位和指数位的数值。3.根据权利要求2所述的方法,其特征在于,所述当所述第一预设位数为64时,所述第二预设位数为52,当所述第一预设位数为32,所述第二预设位数为23。4.根据权利要求1所述的方法,其特征在于,所述根据赋值bzhi指令和所述第一整数的最高位的数值,得到第二浮点数,其中,所述第二浮点数为零或者区间调整偏移量,包括:如果所述第一整数的最高位的数值为零,则根据赋值bzhi指令,得到第二浮点为零;如果所述第一整数的最高位的数值为1,则根据所述bzhi指令,得到第二浮点为区间调整偏移量。5.根据权利要求1...
【专利技术属性】
技术研发人员:谭健文,
申请(专利权)人:广州酷狗计算机科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。