著录项信息
专利名称 | 基于伪随机数的多维度可控方法 |
申请号 | CN201610075882.7 | 申请日期 | 2016-02-03 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2016-07-13 | 公开/公告号 | CN105760136A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F7/58 | IPC分类号 | G;0;6;F;7;/;5;8查看分类表>
|
申请人 | 江苏熟店宝科技有限公司 | 申请人地址 | 江苏省镇江市新区丁卯智慧大道668号804-805室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 江苏易润信息技术有限公司 | 当前权利人 | 江苏易润信息技术有限公司 |
发明人 | 徐伟军;温立平 |
代理机构 | 北京中政联科专利代理事务所(普通合伙) | 代理人 | 何浩 |
摘要
本发明公开了一种基于伪随机数的多维度可控方法,该方法可用于克服现有随机算法或随机数生成方法中,计算过程不可浮动调控,计算周期长,占用资源多等缺陷。由于算法前置初始化步骤只需要一次执行,就可多次调用,并且该抽奖算法可以向管理员提供多维度控制接口,管理员可以设定数据池范围和预存来控制该算法在调用过程中的计算复杂度和范围,使得计算机在生成随机数据时大大减少了资源和网络占用,提高了响应速度。
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的值为最终随机数;进入步骤九;
步骤八,去除Tx{T1、T2、T3……Tj}中的元素T1,更新Tx={T1、T2、T3……Tj-1},更新ρ=∑ρi,i∈[1,j-1],返回步骤六;
步骤九,如M>0,则返回步骤五,否则结束方法 。
2.如权利要求1所述的基于伪随机数的多维度可控方法,其特征在于所述步骤一至步
骤三为初始化步骤,步骤四至步骤九为执行步骤;即该方法 在同一计算机终端被多次调用时,从第二次被调用开始,步骤四为开始执行步骤。
3.如权利要求1所述的基于伪随机数的多维度可控方法,其特征在于步骤一中的基数
数量N、概率数组ρx{ρ1、ρ2、ρ3……ρj}、数量数组λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)}为预先设定,而步骤四中的抽取次数为后期设定。
4.如权利要求1所述的基于伪随机数的多维度可控方法,其特征在于当在被调用过程
中,步骤七发生并发调用,多个线程获得同一个最终随机数Λi,且该Λi对应的λi<并发调用线程数时,服务器调用伪随机函数随机分配Λi,未获得分配的线程返回步骤八。
5.如权利要求1所述的基于伪随机数的多维度可控方法,其特征在于所述基数数量N为
正整数,λi及M为自然数。
6.如权利要求4所述的基于伪随机数的多维度可控方法,其特征在于所述最终随机数
Λi另行保存于寄存器中。
基于伪随机数的多维度可控方法\n技术领域\n[0001] 本发明属于计算机信息技术领域,尤其涉及一种基于伪随机数的多维度可控方法。\n背景技术\n[0002] 在人们的日常生活中,各种生活现象存在着大量的随机性,随着计算机技术的进一步发展和应用,计算机仿真技术在模拟我们日常生活事件随机性方面得到大规模的应用,因而大多数的计算机语言都能够提供产生随机数的子程序、对象或者函数,只是这些随机数并不是绝对随即产生的,而是通过数学计算方法计算获得的一种伪随机数。\n[0003] 固定程序中通过计算机中的伪随机数生成方法,我们可以通过计算一定序列的数值来应用于信息安全、博彩等领域。例如,在公告号为CN201210066971.7公开专利技术方案中,公开了一种基于伪随机数的网上考试系统试卷选项均匀分布方法,在该方法中通过输入试题合集Z、选项合集X、分布合集G、内容合集Y,并放入合集T和S,进行不同数据合集的交叉计算,达到了选项随机分布的效果,但是在整个计算过程中的集合,理论上均是数量固定的集合,因此得到的结果是确定的,可以预见的,是无法施加变量的,从而存在应用领域单一,适应性差的问题。再例如,在公告号为CN201110428803.3公开专利技术方案中公开了一种伪随机数生成器及伪随机数生成方法,该方法中通过奇偶判断模块判断当前伪随机数ai是奇数还是偶数,若为偶数,则将当前伪随机数送入平方处理模块,若为奇数,则将当前伪随机数送入双曲处理模块,通过执行不同的数学计算方法来达到产生随机数的目的。但通过此方法得到的随机数往往具有非常宽泛的周期性,且如果在计算机中多次重复调用该方法,仍然避免不了严重占用计算机资源的问题。\n发明内容\n[0004] 本发明所要解决的技术问题在于,提供一种基于伪随机数的多维度可控方法,用于克服现有随机算法或随机数生成方法中,计算过程不可浮动调控,计算周期长,占用资源多等缺陷。\n[0005] 为了解决上述存在的问题,本发明提出了一种基于伪随机数的多维度可控方法,该方法通过计算机模块实现,包括如下步骤:\n[0006] 步骤一,在服务器中设定基数数量N、概率数组ρx{ρ1、ρ2、ρ3……ρj}、数量数组λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)},且每个抽取数量的值均对应一个ρx{ρ1、ρ\n2、ρ3……ρj}和λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)}中的值;\n[0007] 步骤二,将N中的值,根据其对应的ρx{ρ1、ρ2、ρ3……ρj}和λx{(λ1,Λ1)、(λ2,Λ\n2)、(λ3,Λ3)……(λj,Λj)}中的值,以满足and(ρi>0,λi>0)为规则进行暂存,获得初始化候选数组Tx{T1、T2、T3……Tj};\n[0008] 步骤三,对寄存器中的候选数组Tx{T1、T2、T3……Tj}中的每个数进行标记,生成标记数组tx{t1、t2、t3……tj},且元素值默认为0;\n[0009] 步骤四,设定抽取次数M;\n[0010] 步骤五,以and(ρi>0,λi>0,ti=0)为规则更新候选数组Tx{T1、T2、T3……Tj},ρ=∑ρi,i∈[1,j];\n[0011] 步骤六,计算器在[1,ρ]之间随机计算生成一个随机整数K,M=M-1;如K≤T1,则进入步骤七;否则进入步骤八;\n[0012] 步骤七,服务器标记ti=1,λi=λi-1,取与当前T1对应的Λi的值为最终随机数;\n进入步骤九;\n[0013] 步骤八,去除Tx{T1、T2、T3……Tj}中的元素T1,更新Tx={T1、T2、T3……Tj-1},更新ρ=∑ρi,i∈[1,j-1],返回步骤六;\n[0014] 步骤九,如M>0,则返回步骤五,否则结束算法。\n[0015] 上述算法,步骤一至步骤三为初始化步骤,步骤四至步骤九为执行步骤,即该算法在同一计算机终端被多次调用时,从第二次被调用开始,步骤四为开始执行步骤。\n[0016] 步骤一中的基数数量N、概率数组ρx{ρ1、ρ2、ρ3……ρj}和λx{(λ1,Λ1)、(λ2,Λ2)、(λ3,Λ3)……(λj,Λj)}为预先设定。而步骤四中的抽取次数为后期设定。\n[0017] 上述算法在被调用过程中,发生并发调用,并获得同一个最终随机数Λi,且该Λi对应的λi<并发调用线程数,则服务器调用伪随机函数随机分配Λi,未获得分配的线程返回步骤八。\n[0018] 上述算法中,同一线程调用算法步骤7生成的一个或多个随机数Λi另行保存于寄存器中。\n[0019] 上述算法中,基数数量N为正整数,λi及M为自然数。\n[0020] 本发明提出的伪随机算法,通过在服务器中预先设定候选数据池来达到减少计算步骤和重复初始化的目的,使得算法本身在受到计算机重复调用的过程中可以减少相同且重复的步骤。并且,在随机数生成的过程中,与候选数据池中的元素数据的对比有极大可能进一步减少算法计算步骤,获得结果。该算法在实际使用过程中,能够大幅增加计算机的计算速度,是一种高效的伪随机数算法。\n[0021] 另外,该算法前置的抽取数量、概率数组、数量数组能够让用户简单的从多维度提前设定计算范围,甚至内容,提高了算法的可控性,也从另一角度降低算法的计算复杂度。\n附图说明\n[0022] 图1为本发明的算法流程图。\n[0023] 图2为本发明算法步骤二中的判断规则逻辑图。\n[0024] 图3为本发明算法步骤五中的判断规则逻辑图。\n具体实施方式\n[0025] 为了使本发明的技术方案更加清晰明了,下面结合附图对本发明的技术方案内容、特点和效果做进一步说明:\n[0026] 实施例1:\n[0027] 在O2O的CS架构应用软件系统中,包含管理员、系统和用户3个角色,分为用户终端、商家管理终端和服务器终端。\n[0028] 管理员经常通过商机管理终端发布一些抽奖活动来调动用户消费积极性,发布的信息通常包括了奖项数量、奖项内容和奖项名额等信息,该信息上传并保存于服务器终端。\n而用户通过预装在用户终端小游戏的得分情况,获得抽奖机会,然后连接服务器终端进行抽奖行为。通过本发明提出的算法,该软件系统即可完成上述一系列活动过程,步骤如下:\n[0029] 初始化步骤:\n[0030] 步骤一S01,商家通过管理终端设置一等奖为“现金券50元”、二等奖为“商家积分\n200点”、三等奖为“谢谢惠顾!”3个奖项,每个奖项的获奖概率为ρx{ρ1=1、ρ2=15、ρ3=\n50}、奖项名额及奖项内容其为λx{(λ1=1,Λ1=“现金券50元”)、(λ2=2,Λ2=“商家积分\n200点”)、(λ3=3,Λ3=“谢谢惠顾!”)};一等奖对应的概率为ρ1,对应的奖项内容及奖项名额为(λ1,Λ1),以此类推;\n[0031] 步骤二S02,服务器终端将3个奖项,按照附图2所示逻辑S021,以and(ρi>0,λi>0)暂存(即奖项对应的获奖概率大于0,奖项名额大于0),并按概率ρi从小到大排序,得到系统初始化候选数组T={T1=1,T2=15,T3=50};\n[0032] 步骤三S03,服务器终端对寄存器中的候选数组T{}中的每个数进行标记,生成标记数组t{t1、t2、t3},且t1、t2、t3默认值为0;\n[0033] 执行步骤:\n[0034] 步骤四S04,当第1个用户,参加用户终端小游戏游戏,获得M=2次的抽奖机会,并开始抽奖,通过网络调用服务器计算机进行步骤五S05;\n[0035] 步骤五S05,服务器终端按照如图3所示逻辑S051,以and(ρi>0,λi>0,ti=0)判断规则更新候选数组T{T1、T2、T3},并对相应的中奖概率ρ1、ρ2、ρ3求和,得ρ=∑ρi=66;\n[0036] 步骤六S06,服务器终端通过计算机函数在[1,ρ]之间随机取1个整数K=17;则不满足K小于等于T1的条件,执行步骤八S08;\n[0037] 步骤八S08,去除T{}中的元素T1,更新T{},T={T1=15、T2=50},更新ρ=∑ρi=\n65,返回步骤六S06;\n[0038] 假设此次在步骤六S06中取得随机整数K=11,满足K小于等于T1的条件,执行步骤七S07;\n[0039] 步骤七S07,服务器终端标记t2=1,λ2=λ2-1=1,M=M-1=1,取与当前T1对应的Λ2=“商家积分200点”的值为最终抽奖结果;\n[0040] 执行步骤五S05后,再次获得更新的T{T1=1、T3=50},ρ=51;\n[0041] 假设执行步骤六后,获得随机整数K=1,满足K小于等于T1的条件,执行步骤七S07;\n[0042] 执行后t1=1,λ1=λ1-1=0,M=M-1=0;\n[0043] 即一等奖库存为0,二等奖库存为1,三等奖库存仍为3;\n[0044] 执行步骤九S09,如果M>0,重新执行步骤五;否则算法结束,服务器终端向用户反馈抽奖获得奖项信息,用户终端显示中奖内容“恭喜您获得商家积分200点”。\n[0045] 实施例2\n[0046] 由于智能终端的普及应用,该算法在进行调用时,往往会出现并发调用的情况,例如:\n[0047] 在O2O的CS架构应用软件系统中,包含管理员、系统和用户3个角色,分为用户终端、商家管理终端和服务器终端。用户终端和商家管理终端可以是移动智能设备。\n[0048] 管理员通过商家管理终端,设定抽奖前置信息,执行初始化步骤;\n[0049] 如附图1所示:\n[0050] 初始化步骤;\n[0051] 步骤一S01,商家通过管理终端设置一等奖、二等奖、三等奖3个奖项,每个奖项的获奖概率为ρx{ρ1=5、ρ2=25、ρ3=70}、奖项名额及奖项内容其为λx{(λ1=10,Λ1)、(λ2=\n20,Λ2)、(λ3=30,Λ3)};一等奖对应的概率为ρ1,对应的奖项内容及奖项名额为(λ1,Λ\n1),以此类推;\n[0052] 步骤二S02,服务器终端将3个奖项,按照图1所示逻辑,以and(ρi>0,λi>0)暂存(即奖项对应的获奖概率大于0,奖项名额大于0),并按概率ρi从小到大排序,得到系统初始化候选数组T={T1=1,T2=15,T3=50};\n[0053] 步骤三S03,服务器终端对寄存器中的候选数组T{}中的每个数进行标记,生成标记数组t{t1、t2、t3},且t1、t2、t3默认值为0;\n[0054] 在抽奖活动过程中,经过多人次的抽奖,服务器中现有的候选数组T{}中的奖项库存为一等奖λ1=3,二等奖λ2=2,三等奖λ3=10;\n[0055] 假设在某一时间点上,有5名用户通过用户终端同时调用该抽奖算法,并且有4名用户通过随机数匹配获得二等奖。由于是及时并发生成的结果,服务器中的库存数据池来不及修订,造成了多名中奖者抢夺同一奖项的情况。\n[0056] 在此情况下,本发明提出的算法调用服务器自身的伪随机函数,在并发的4名用户中,随机计算抽取2名获奖者,返回Λ值。其余2名用户,则直接跳入步骤八(即未中奖)。\n[0057] 在实施例1和实施例2中,通过将算法计算步骤分类为初始化步骤、执行步骤,算法前置初始化步骤只需要一次执行,就可多次调用。该抽奖算法可以向管理员提供多维度控制接口,管理员可以设定奖项数、中奖概率、抽奖内容和预留库存来控制该抽奖算法在抽奖过程中的计算复杂度和范围,由于设置了数据池范围,计算机在生成随机抽奖数据时大大减少了抽奖步骤。特别是在步骤六中,通过[1,ρ]抽取对比整数K,在很大概率上可以大大缩减对比计算步骤,从而降低对服务器的资源占用,提高服务器计算效率。\n[0058] 而在实施例2中,只有当多用户并发调用,且经过算法计算生成的伪随机数数量大于数据池数量时,服务器才调用自身的低效率伪随机算法,进行奖项分配。此方法也能大幅降低服务器对随机函数的调用。\n[0059] 虽然本发明在具体实施方式中结合附图对本发明的优选实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,并不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以作出很多形式的应用,这些应用亦属于本发明的保护范围之内。
法律信息
- 2023-01-13
专利实施许可合同备案的生效
IPC(主分类): G06F 7/58
合同备案号: X2022980027177
专利申请号: 201610075882.7
申请日: 2016.02.03
让与人: 江苏易润信息技术有限公司
受让人: 江苏派智信息科技有限公司
发明名称: 基于伪随机数的多维度可控方法
申请公布日: 2016.07.13
授权公告日: 2019.04.09
许可种类: 普通许可
备案日期: 2022.12.28
- 2021-05-07
专利权人的姓名或者名称、地址的变更
专利权人由江苏易润信息技术有限公司变更为江苏易润信息技术有限公司
地址由212000 江苏省镇江市高新区南徐大道298号变更为212000 江苏省镇江市新区丁卯智慧大道668号804-805室
- 2019-04-09
- 2019-01-04
专利申请权的转移
登记生效日: 2018.12.14
申请人由镇江云杰信息技术有限公司变更为江苏易润信息技术有限公司
地址由212000 江苏省镇江市新区智慧大道668号803室变更为212000 江苏省镇江市新区丁卯智慧大道668号804-805室
- 2018-09-28
专利申请权的转移
登记生效日: 2018.09.07
申请人由江苏熟店宝科技有限公司变更为镇江云杰信息技术有限公司
地址由212001 江苏省镇江市中山东路33号龙发大厦18F变更为212000 江苏省镇江市新区智慧大道668号803室
- 2016-08-10
实质审查的生效
IPC(主分类): G06F 7/58
专利申请号: 201610075882.7
申请日: 2016.02.03
- 2016-07-13
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-01-25
|
2011-07-22
| | |
2
| |
2013-12-18
|
2011-10-13
| | |
3
| | 暂无 |
2006-03-27
| | |
4
| |
2014-06-11
|
2012-11-30
| | |
5
| |
2009-04-22
|
2007-10-17
| | |
6
| |
2013-04-10
|
2012-12-10
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |