一种浮点随机数的生成方法及系统技术方案

技术编号:8452775 阅读:237 留言:0更新日期:2013-03-21 13:14
本申请提供了一种浮点随机数的生成方法,包括:设定浮点随机数的生成区间、生成起点及生成个数;依据所述生成区间及所述生成个数确定取数跨步参数;以所述生成起点为初始点,所述取数跨步参数为选取标准,在所述生成区间中依次选取浮点数;当选取的浮点数个数与所述生成个数相等时,停止取数;将选取的浮点数序列进行乱序操作,生成浮点随机数。与所述方法相对应的,本申请还提供了一种浮点随机数的生成系统。本申请实施例提供的浮点随机数生成方法及系统,通过设定不同的操作参数使得产生的浮点随机数的跨度均匀,产生的随机数可以覆盖到不同的数量级,随机数的随机性强。

【技术实现步骤摘要】
一种浮点随机数的生成方法及系统
本申请涉及计算机领域,特别涉及一种浮点随机数的生成方法及系统。
技术介绍
浮点在计算机系统中普遍存在,几乎每种语言都有浮点数据类型。从个人计算机到巨型计算机都有浮点加速器;多数编译器要经常用来编译浮点算法。在科学计算中,浮点的正确性更是起着举足轻重的作用。对浮点的测试除了特殊数值的测试,还需要一般浮点数来验证结果。因为浮点是无法穷尽测试的,所以需要使用大量的可控随机数来进行测试。现有的浮点数选取方法采用整型随机数的产生方法,由于整数与浮点数的构造不同,采用整型随机数的产生方法,产生的浮点随机数的跨度不均匀,随机性不强。
技术实现思路
本申请所要解决的技术问题是提供一种浮点随机数的生成方法及系统,能够均匀的产生随机数,提升产生的随机数的随机性。其具体方案如下一种浮点随机数的生成方法,包括设定浮点随机数的生成区间、生成起点及生成个数;依据所述生成区间及所述生成个数确定取数跨步参数;以所述生成起点为初始点,所述取数跨步参数为选取标准,在所述生成区间中依次选取浮点数;当选取的浮点数个数与所述生成个数相等时,停止取数;将选取的浮点数序列进行乱序操作,生成浮点随机数。上述的方法,优选的,所述依据所述生成区间及所述生成个数确定取数跨步参数包括确定所述生成区间内浮点数的总个数;求取所述总个数除以所述生成个数的结果值;依据预设的计算规则对所述结果值进行计算,获得所述取数跨步参数。上述的方法,优选的,所述在生成区间中依次选取浮点数,当选取的浮点数个数与所述生成个数相等时,停止取数;包括将所述生成起点作为当前起始浮点数,选取所述起始浮点数后的第二浮点数;所述第二浮点数在所述生成区间中的位置编码与所述当前起始浮点数的位置编码的差值与所述取数跨步参数的值相等;判断所述第二浮点数的值是否大于所述生成区间中浮点数的最大值;当不大于时,将所述第二浮点数作为新的当前起始浮点数;直至选取的浮点数个数与所述生成个数相等时,停止取数。上述的方法,优选的,还包括当判断所述第二浮点数的值大于所述生成区间中浮点数的最大值时,判断选取的浮点数的个数是否与所述生成个数相等;当不相等时,将所述生成区间中浮点数的最小值作为当前起始浮点数;直至选取的浮点数个数与所述生成个数相等时,停止取数。上述的方法,优选的,还包括将所述生成区间中浮点数的最小值作为当前起始浮点数,进行选数时,判断所述第二浮点数的值是否大于所述生成起点;当大于时,停止取数。上述的方法,优选的,还包括判断选取的浮点数的个数是否与所述生成相等;当不相等时,将所述第二浮点数进行舍弃。上述的方法,优选的,在选取浮点数的过程中,每选取一浮点数,为该浮点数随机分配赋值符号。一种浮点随机数生成系统,包括设定单元,用于设定浮点随机数的生成区间、生成起点及生成个数;确定单元,用于依据所述生成区间及所述生成个数确定取数跨步参数;选取单元,用于以所述生成起点为初始点,所述取数跨步参数为选取标准,在所述生成区间中依次选取浮点数;当选取的浮点数个数与所述生成个数相等时,停止取数;乱序单元,用于将选取的浮点数序列进行乱序操作,生成浮点随机数。上述的系统,优选的,所述选取单元包括确定子单元,用于确定所述生成区间内浮点数的总个数;计算子单元,用于求取所述总个数除以所述生成个数的结果值,并依据预设的计算规则对所述结果值进行计算,获得所述取数跨步参数。上述的系统,优选的,所述选取单元包括选取子单元,用于将所述生成起点作为当前起始浮点数,选取所述起始浮点数后的第二浮点数;所述第二浮点数在所述生成区间中的位置编码与所述当前起始浮点数的位置编码的差值与所述取数跨步参数的值相等;判断子单元,用于判断所述第二浮点数的值是否大于所述生成区间中浮点数的最大值。由以上本申请实施例提供的技术方案可见,本申请提供的一种浮点随机数的生成方法,可任意设定浮点随机数的生成区间、浮点数的生成起点及需要产生浮点数的个数;依据所述生成区间及所述生成个数确定取数的跨步参数;以所述生成起点为初始点,所述取数跨步参数为选取标准,在所述生成区间中依次选取浮点数;当选取的浮点数个数与所述生成个数相等时,停止取数;将选取的浮点数序列进行乱序操作,生成浮点随机数。本申请实施例提供的浮点随机数生成方法,通过设定不同的操作参数使得产生的浮点随机数的跨度均匀,产生的随机数可以覆盖到不同的数量级,随机数的随机性强。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是本申请实施例公开的一种浮点随机数的生成方法实施例I的流程图图2是本申请实施例公开的一种浮点随机数的生成方法实施例2的流程图图3是本申请实施例公开的一种浮点随机数的生成方法实施例3的流程图图4是本申请实施例公开的一种浮点随机数的生成系统实施例I的结构示意图5是本申请实施例公开的一种浮点随机数的生成系统实施例2的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。参考图1,示出了本申请一种浮点随机数的生成方法实施例I的流程图,可以包括以下步骤步骤SlOl :设定随机数的生成区间、生成起点及生成个数;本申请实施例提供的随机数生成算法,输入有两个N——需要产生的随机数个数,用来控制产生的随机数量;种子seed——作为随机数产生的起点。还可根据具体的生成需求设定其它要求参数。为了满足取得的随机数能够覆盖各个范围,本申请实施例提供的浮点随机数生成方法,确定选取的生成区间,及生成起点。如生成区间为{从,则开始生成随机数时,由起点开始随机取数据,达到最大数后返回到0,从O再开始取数,再次到达起点后停止取数。步骤S102 :依据所述生成区间及所述生成个数确定取数跨步参数;本申请实施例提供的浮点随机数生成方法中,所述确定取数跨步参数如图2所示,包括步骤S201 :确定所述生成区间内浮点数的总个数;步骤S202 :求取所述总个数除以所述生成个数的结果值;步骤S203 :依据预设的计算规则对所述结果进行计算,获得所述取数跨步参数。本申请实施例提供的生成方法中,主要思想是浮点最大数记为MAX,将 平均分为N等分,每等分区间随机取一浮点数,再随机地赋予符号,使得数据可正可负。 这里不能用MAX/N来分,因为浮点数分布是不均匀的,指数越大,分布就越稀疏,故落在 (i=l,......,N — I)区间中的浮点数是不等的,这样就使得指数小的数被取中的概率减小,不利于随机性。所以应该用浮点总个数total/N分区间。 不考虑符号和非数,对于单精度,total = 231 — 223 + I,双精度,total = 263 — 252 + I。步骤S103 :以所述生成起点为起始点,所述取数跨步参数为选取标准,在所述生成区间中依次选取浮点数;当选取的浮点数个数与所述生成个数相等时,停止取本文档来自技高网...

【技术保护点】
一种浮点随机数的生成方法,其特征在于,包括:设定浮点随机数的生成区间、生成起点及生成个数;依据所述生成区间及所述生成个数确定取数跨步参数;以所述生成起点为初始点,所述取数跨步参数为选取标准,在所述生成区间中依次选取浮点数;当选取的浮点数个数与所述生成个数相等时,停止取数;将选取的浮点数序列进行乱序操作,生成浮点随机数。

【技术特征摘要】

【专利技术属性】
技术研发人员:王俊李岱峰王丽一谭坚吴臻相陈伟
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1