基于伪随机数的多维度可控方法技术

技术编号:13348472 阅读:60 留言:0更新日期:2016-07-15 02:05
本发明专利技术公开了一种基于伪随机数的多维度可控方法,该方法可用于克服现有随机算法或随机数生成方法中,计算过程不可浮动调控,计算周期长,占用资源多等缺陷。由于算法前置初始化步骤只需要一次执行,就可多次调用,并且该抽奖算法可以向管理员提供多维度控制接口,管理员可以设定数据池范围和预存来控制该算法在调用过程中的计算复杂度和范围,使得计算机在生成随机数据时大大减少了资源和网络占用,提高了响应速度。

【技术实现步骤摘要】
基于伪随机数的多维度可控方法
本专利技术属于计算机信息
,尤其涉及一种基于伪随机数的多维度可控方法。
技术介绍
在人们的日常生活中,各种生活现象存在着大量的随机性,随着计算机技术的进一步发展和应用,计算机仿真技术在模拟我们日常生活事件随机性方面得到大规模的应用,因而大多数的计算机语言都能够提供产生随机数的子程序、对象或者函数,只是这些随机数并不是绝对随即产生的,而是通过数学计算方法计算获得的一种伪随机数。固定程序中通过计算机中的伪随机数生成方法,我们可以通过计算一定序列的数值来应用于信息安全、博彩等领域。例如,在公告号为CN201210066971.7公开专利技术方案中,公开了一种基于伪随机数的网上考试系统试卷选项均匀分布方法,在该方法中通过输入试题合集Z、选项合集X、分布合集G、内容合集Y,并放入合集T和S,进行不同数据合集的交叉计算,达到了选项随机分布的效果,但是在整个计算过程中的集合,理论上均是数量固定的集合,因此得到的结果是确定的,可以预见的,是无法施加变量的,从而存在应用领域单一,适应性差的问题。再例如,在公告号为CN201110428803.3公开专利技术方案中公开了一种伪随机数生成器及伪随机数生成方法,该方法中通过奇偶判断模块判断当前伪随机数ai是奇数还是偶数,若为偶数,则将当前伪随机数送入平方处理模块,若为奇数,则将当前伪随机数送入双曲处理模块,通过执行不同的数学计算方法来达到产生随机数的目的。但通过此方法得到的随机数往往具有非常宽泛的周期性,且如果在计算机中多次重复调用该方法,仍然避免不了严重占用计算机资源的问题。
技术实现思路
本专利技术所要解决的技术问题在于,提供一种基于伪随机数的多维度可控方法,用于克服现有随机算法或随机数生成方法中,计算过程不可浮动调控,计算周期长,占用资源多等缺陷。为了解决上述存在的问题,本专利技术提出了一种基于伪随机数的多维度可控方法,该方法通过计算机模块实现,包括如下步骤:步骤一,在服务器中设定基数数量N、概率数组ρx{ρ1、ρ2、ρ3……ρj}、数量数组λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)},且每个抽取数量的值均对应一个ρx{ρ1、ρ2、ρ3……ρj}和λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)}中的值;步骤二,将N中的值,根据其对应的ρx{ρ1、ρ2、ρ3……ρj}和λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)}中的值,以满足and(ρi>0,λi>0)为规则进行暂存,获得初始化候选数组Tx{T1、T2、T3……Tj};步骤三,对寄存器中的候选数组Tx{T1、T2、T3……Tj}中的每个数进行标记,生成标记数组tx{t1、t2、t3……tj},且元素值默认为0;步骤四,设定抽取次数M;步骤五,以and(ρi>0,λi>0,ti=0)为规则更新候选数组Tx{T1、T2、T3……Tj},ρ=∑ρi,i∈[1,j];步骤六,计算器在[1,ρ]之间随机计算生成一个随机整数K,M=M-1;如K≤T1,则进入步骤七;否则进入步骤八;步骤七,服务器标记ti=1,λi=λi-1,取与当前T1对应的Λi的值为最终随机数;进入步骤九;步骤八,去除Tx{T1、T2、T3……Tj}中的元素T1,更新Tx={T1、T2、T3……Tj-1},更新ρ=∑ρi,i∈[1,j-1],返回步骤六;步骤九,如M>0,则返回步骤五,否则结束算法。上述算法,步骤一至步骤三为初始化步骤,步骤四至步骤九为执行步骤,即该算法在同一计算机终端被多次调用时,从第二次被调用开始,步骤四为开始执行步骤。步骤一中的基数数量N、概率数组ρx{ρ1、ρ2、ρ3……ρj}和λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)}为预先设定。而步骤四中的抽取次数为后期设定。上述算法在被调用过程中,发生并发调用,并获得同一个最终随机数Λi,且该Λi对应的λi<并发调用线程数,则服务器调用伪随机函数随机分配Λi,未获得分配的线程返回步骤八。上述算法中,同一线程调用算法步骤7生成的一个或多个随机数Λi另行保存于寄存器中。上述算法中,基数数量N为正整数,λi及M为自然数。本专利技术提出的伪随机算法,通过在服务器中预先设定候选数据池来达到减少计算步骤和重复初始化的目的,使得算法本身在受到计算机重复调用的过程中可以减少相同且重复的步骤。并且,在随机数生成的过程中,与候选数据池中的元素数据的对比有极大可能进一步减少算法计算步骤,获得结果。该算法在实际使用过程中,能够大幅增加计算机的计算速度,是一种高效的伪随机数算法。另外,该算法前置的抽取数量、概率数组、数量数组能够让用户简单的从多维度提前设定计算范围,甚至内容,提高了算法的可控性,也从另一角度降低算法的计算复杂度。附图说明图1为本专利技术的算法流程图。图2为本专利技术算法步骤二中的判断规则逻辑图。图3为本专利技术算法步骤五中的判断规则逻辑图。具体实施方式为了使本专利技术的技术方案更加清晰明了,下面结合附图对本专利技术的技术方案内容、特点和效果做进一步说明:实施例1:在O2O的CS架构应用软件系统中,包含管理员、系统和用户3个角色,分为用户终端、商家管理终端和服务器终端。管理员经常通过商机管理终端发布一些抽奖活动来调动用户消费积极性,发布的信息通常包括了奖项数量、奖项内容和奖项名额等信息,该信息上传并保存于服务器终端。而用户通过预装在用户终端小游戏的得分情况,获得抽奖机会,然后连接服务器终端进行抽奖行为。通过本专利技术提出的算法,该软件系统即可完成上述一系列活动过程,步骤如下:初始化步骤:步骤一S01,商家通过管理终端设置一等奖为“现金券50元”、二等奖为“商家积分200点”、三等奖为“谢谢惠顾!”3个奖项,每个奖项的获奖概率为ρx{ρ1=1、ρ2=15、ρ3=50}、奖项名额及奖项内容其为λx{(λ1=1,Λ1=“现金券50元”)、(λ2=2,Λ2=“商家积分200点”)、(λ3=3,Λ3=“谢谢惠顾!”)};一等奖对应的概率为ρ1,对应的奖项内容及奖项名额为(λ1,Λ1),以此类推;步骤二S02,服务器终端将3个奖项,按照附图2所示逻辑S021,以and(ρi>0,λi>0)暂存(即奖项对应的获奖概率大于0,奖项名额大于0),并按概率ρi从小到大排序,得到系统初始化候选数组T={T1=1,T2=15,T3=50};步骤三S03,服务器终端对寄存器中的候选数组T{}中的每个数进行标记,生成标记数组t{t1、t2、t3},且t1、t2、t3默认值为0;执行步骤:步骤四S04,当第1个用户,参加用户终端小游戏游戏,获得M=2次的抽奖机会,并开始抽奖,通过网络调用服务器计算机进行步骤五S05;步骤五S05,服务器终端按照如图3所示逻辑S051,以and(ρi>0,λi>0,ti=0)判断规则更新候选数组T{T1、T2、T3},并对相应的中奖概率ρ1、ρ2、ρ3求和,得ρ=∑ρi=66;步骤六S06,服务器终端通过计算机函数在[1,ρ]之间随机取1个整数K=17;则不满足K小于等于T1的条件,执行步骤八S08;步骤八S08,去除T{}中的元素T1,更新T{},本文档来自技高网...

【技术保护点】
基于伪随机数的多维度可控算法,包括如下步骤:步骤一,在服务器中设定基数数量N,概率数组ρi{ρ1、ρ2、ρ3……ρi},数量数组λi{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λi,Λi)},且每个抽取数量的值均对应一个ρi和λi中的值;步骤二,将N中的值,根据其对应的ρi{ }和λi{ }中的值,以满足and(ρi>0,λi>0)为规则进行暂存,获得初始化候选数组Ti{T1、T2、T3……Ti};步骤三,对寄存器中的候选数组Ti中的每个数进行标记,生成标记数组ti{t1、t2、t3……ti},且元素值默认为0;步骤四,设定抽取次数M;步骤五,以and(ρi>0,λi>0,ti=0)为规则更新候选数组Ti{ },ρ=∑ρi,i=1、2、3、4……i;步骤六,计算器在[1,ρ]之间随机计算生成一个随机整数K,M=M‑1;如K≤T1,则进入步骤七;否则进入步骤八;步骤七,服务器标记ti=1,λi=λi‑1,取与当前T1对应的Λi的值为最终随机数;进入步骤九;步骤八,去除Ti{ }中的元素T1,更新Ti{ },Ti={T1、T2、T3……Ti‑1},更新ρ=∑ρi,返回步骤六;步骤九,如M>0,则返回步骤五,否则结束算法。...

【技术特征摘要】
1.基于伪随机数的多维度可控方法,包括如下步骤:步骤一,在服务器中设定基数数量N、概率数组ρx{ρ1、ρ2、ρ3……ρj}、数量数组λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)},且每个抽取数量的值均对应一个ρx{ρ1、ρ2、ρ3……ρj}和λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)}中的值;步骤二,将N中的值,根据其对应的ρx{ρ1、ρ2、ρ3……ρj}和λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)}中的值,以满足and(ρi>0,λi>0)为规则进行暂存,i∈[1,j],获得初始化候选数组Tx{T1、T2、T3……Tj};步骤三,对寄存器中的候选数组Tx{T1、T2、T3……Tj}中的每个数进行标记,生成标记数组tx{t1、t2、t3……tj},且元素值默认为0;步骤四,设定抽取次数M;步骤五,以and(ρi>0,λi>0,ti=0)为规则更新候选数组Tx{T1、T2、T3……Tj},ρ=∑ρi,i∈[1,j];步骤六,计算器在[1,ρ]之间随机计算生成一个随机整数K,M=M-1;如K≤T1,则进入步骤七;否则进入步骤八;步骤七,服务器标记ti=1,λi=λi-1,取与当前T1对应的Λi的...

【专利技术属性】
技术研发人员:徐伟军温立平
申请(专利权)人:江苏熟店宝科技有限公司
类型:发明
国别省市:江苏;32

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

1