基于双因子体系的随机算法技术领域
本发明属于信息数据生成领域,具体地说,本发明涉及基于双因子体系的随机算
法。
背景技术
中国互联网络信息中心(CNNIC)2015年2月3号发布的《第35次中国互联网
络发展状况统计报告》显示,即时通信作为第一大上网应用,在网民中的使用率继续
上升,达到90.6%。2014年,手机端即时通信使用也一直保持着稳步增长的趋势。截
至2014年12月,我国手机即时通信网民数为5.08亿,较2013年底增长了7683万,
年增长率达17.8%。手机即时通信使用率为91.2%,较2013年底提升了5.1个百分点。
即时通信已经成为现代人类每天生活中不可缺少的一部分,是实现网络社交的主要工
具,但是现在的即时通讯类网络社交系统普遍呈现交流形式单一,交流表现手段不丰
富,枯燥乏味,尤其是缺少现实环境中社交时所具备的交流场景和动作互动的社交固
有元素。
目前,在手机等移动终端上,出现了红包的一种游戏,比如说QQ红包、微信红
包等抽奖效果的游戏。由于其趣味性、猎奇心性以及互动性,收到广大用户的欢迎,
得大了迅速的推广。而这些应用正是基于计算机仿真技术,随机数生成和分配技术产
生的模拟现实生活的一种互动方式。
现有的随机数生成和分配系统大多建立在随机抽取的基础之上,即利用服务器中
的计算器在固定的最大值和最小值范围内随机抽取一个数,并根据这个数计算抽取结
果。在此过程中,由于存储的存储器中的最大值和最小值为固定数,不能随机调整,
因此每次的抽取结果均会落入相应范围内,且每次计算器的计算范围固定,不能缩小
计算范围,导致计算器多次计算式产生大量的计算步骤,而设定过多的计算范围则由
增加了对计算机存储资源的占用,且计算复杂度会大幅增加,反而占用更多的计算机
和网络资源,从而导致计算机响应速度变慢甚至瘫痪。
所以,对于技术人员来说,开发一种基于双因子体系的随机算法,通过设定预订
数据池范围,即数据池区间的最大值和/或最小值,实现随机生成系统的灵活操作,
同时减少生成过程中计算器计算步骤以达到提高计算机响应速度和精度的目的,成为
一个亟待解决的问题。
发明内容
本发明要解决的技术问题是克服上述现有技术存在的缺陷和不足,提供一种基于
双因子体系的随机算法,通过设定系统数据池范围,即数据池区间最大值和/或最小
值,实现数据系统的灵活操作,将有限的特定数据分配给制定用户,同时减少过程中
计算步骤以达到提高计算机响应速度和精的目的。
为解决上述问题,本发明所采用的技术方案是:
基于双因子体系的随机算法,其特征在于所述算法包括初始化步骤和执行步骤:
初始化步骤:
步骤一,初始化数据池,设定用户筛选规则和条件数据区间Y[Y0,Y1],设定数
据池区间T[T0,T1],设定元素数据边界S[S0,S1],设定对比属性U,设定标记位
置L;
步骤二,调用随机函数生成候选数据池和候选数据Ni{N1,N2,……Ni},且候
选数据池中的数据按值的大小顺序排列;
步骤三,发送调用信号至候选用户终端;
执行步骤:
步骤四,现实条件触发算法事件,候选用户可以开始分配候选数据Ni{N1,N2,……
Ni};
步骤五,如果第1个用户进入数据分配,则将候选用户属性与对比属性U进行对
比,根据对比百分比,定位候选数据池候选位置X,截取该位置前后M个位置范围内
的数据,作为定位候选数据池Aj{A1,A2……,Aj};
如果第2个及以后的用户进入数据分配,则将候选用户属性与对比属性U进行对
比;若大于等于U,则将[NX,Ni]区间内的候选数据作为定位候选数据池Aj{A1,
A2……,Aj},否则将[N1,NX]区间内的候选数据作为定位候选数据池Aj{A1,A2……,
Aj};
步骤六,调用随机函数在候选数据Aj{A1,A2……,Aj}中随机抽取一个数值,
作为分配数据,分发给用户;保存X至标记位置L,保存用户属性至对比属性U,在
Ni{N1,N2,……Ni}中标记选中数据为已选;
步骤七,若Ni{N1,N2,……Ni}中数据元素均已选,或现实条件超过条件数
据区间,则算法结束。
上述算法中,所述的元素数据边界为[S0,S1],S0=max(T1*0.001,0.01),
S1=min{T1-[N0*max(T1*0.001,0.01)],200}。
所述条件数区间Y[Y0,Y1]可以是时间区间,也可以是数据值区间,如果是时间
区间则精确至秒,如果是数据值区间,则至少精确到个位数。
在上述算法中,步骤二中所述的数据按值的大小排列可以是降序排列,也可以是
升序排列。
步骤四中的现实条件指的是现实时间或数据累计值。
步骤五中所属的候选用户属性可以是用户贡献值、性别、年龄、入会时间因素。
由于采用了上述技术方案,与现有技术相比,本发明提出的算法从数据池范围和
随机计算两个维度对数据分配进行了控制,即步骤五中的用户属性与对比属性U进行
对比,根据对比百分比定位候选数据位置,替代了现有技术中直接调用随机函数进行
生成的方法,在该算法中,每次执行都会更新对比属性U,从而达到了实时变换的效
果,相比传统随机数据生成和分配,本发明提出的算法计算步骤更少,占用计算机资
源低,效率更高。
本发明提出的算法通过截取候选数据池中的一段范围,减少了数据分配和抽取过
程中计算机的计算步骤,提高了用户响应,并实现了精确抽取的效果。
本发明提出的算法通过初始化步骤,设定数据池范围区间,即最大值和/或最小
值,实现随机数分配和抽取系统的灵活调整,同时减少过程中计算器步骤以达到提高
计算机响应速度和精度的目的。
附图说明
图1是本发明的流程示意图。
具体实施方式
下面结合附图和具体实施例,进一步阐述本发明的技术方案,应理解,这些实施
例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授
的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落
在申请所附权利要求书所限定的范围。
实施例:
基于双因子体系的随机算法,该算法布置于C/S架构系统,用于系统中的抽奖活
动计算,抽奖内容为电子红包。该系统包括用户终端、商家管理终端和服务器终端。
用户终端可以是智能移动设备或者个人电脑等具有计算机功能的设备;商家管理终端
为移动终端或者个人电脑等具有计算机功能的设备;服务器终端为个人电脑或者服务
站。另外,上述只是基于现有的或者常用的,如果其他设备上也可以实现本发明算法
的调用或运行的话,该设备也在终端范围之内。
如附图1所示,基于双因子体系的随机算法在该架构系统中,运行步骤如下:
S01,商家管理终端上传并初始化服务器终端寄存器内容,初始化算法,设定用
户筛选规则为“消费积分≥1000积分”,条件区间为[2015年10月18日24:00:00,
2015年10月20日24:00:00],设定电子红包总额区间T[0,1000],设定单个电子
红包金额边界S[0,100],设定参与门槛的条件数据区间为Y[入会1年以上,无限
大],设定对比属性U=商家拥有用户总积分=10万分,设定标记位置L=第一顺位;
商家管理终端执行确认发布电子红包时,若红包生效时间段符合系统逻辑的(截
至时间不落后于现实时间),方可允许提交,并提示一旦发布后不能编辑。
确认发布后,服务器终端通过互联网推送短信给商家管理终端的负责人,以示提
醒。
S02,服务器终端根据T调用随机函数随机生成N0=10个红包,使每个红包中的
金额Ti∈[0,1000],且ΣTi=1000,按从小到大排序为候选数据池Ni{N1,N2……N10}
中的数据。
在此步骤中,初始化的红包个数N0不能小于1,电子红包总额区间T的意思是,
最小值不得小于0元,最小数据单位不能低于0.01元(现实最新数值单位),最大小
于1000元),条件数据区间的时间应当精确到秒。电子红包参与门槛也可以设定为用
户贡献值、性别、年龄等因素。
为了尽最大可能保证抽奖的公平性和平衡性,设定最小电子红包金额满足
S1=max(1000*0.001,0.01)的现实情况(即不得小于1分钱),最大电子红包金额满
足S2=min{1000-[N0*max(1000*0.001,0.01)],200}(最大不超过200元)。
为了尽最大可能保证抽奖的公平性和平衡性,设定最小电子红包金额满足
S1=max(1000*0.001,0.01)的现实情况(即不得小于1分钱),最大电子红包金额满
足S2=min{1000-[N0*max(1000*0.001,0.01)],200}(最大不超过200元)。
S03,服务器终端推送系统消息给符合“消费积分≥1000积分”门槛的用户终端。
符合条件的用户终端,收到推送消息。
S04,当实际时间到达红包生效时间时,时间触发使活动开始,符合门槛的用户
终端可以开始打开电子红包。
S05,当第1个用户打开红包时,服务器终端根据用户个人积分值=15000分,
与对比属性U=100000分进行对比,获得对比百分比15%,将候选池数组Ni{}取得相
应百分比的位置,即X=10*15%=第1.5位≈第2位。在其位置前后分别取不超过2个,
即截取第1位,第2位,第3位,第4位,作为候选数据池Aj{N1,N2,N3,N4}.
若第2个用户打开红包,如果用户个人积分值≥U,则在Ni{}中[N3,N10]区间
随机取一个数据Ni作为获得奖品,并标记Ni位置位至标记位置L,保存用户积分至
U,标记Ni为已选。
第3个及以后的所有用户打开红包计算方法类推;
S06,在A卷{}中的4个潜在候选红包中,随机取一个作为第一个红包。假设取
得第3位的N3,作为第1个用户获得奖品,将数据发送到用户终端。将第3位位置
标记X,保存U=15000积分,标记N3为已选。
S07,如果Ni{}中候选数据均已标记为已选,则提示“来迟了,已抢完!”;
如果用户打开电子红包时,实际时间已经超过红包生效时间段,则提示“红包过
期,不能参与!”
在上述实施例中,本发明提出的算法即考虑到了参与抽奖用户在商家所有会员中
的积分排名,使用户获奖价值对应其对该商家的贡献;又考虑到了某一抽奖用户相对
其他所有抽奖用户中的记分排名,是一种保证了相对公平的抽奖计算方法。从商家和
用户双重成长因子的角度对抽奖范围进行了优化。
本发明通过截取原有抽奖范围中的一段作为数据池,减少了算法执行过程中计算
机的计算步骤,提高了用户响应速度,并实现了精确奖值的效果。
本发明通过预先设定的初始化步骤,调整数据池系统范围,即最大值和/或最小
值,实现数据的灵活分配,同时减少分配过程中计算器步骤以达到提高计算机响应速
度和精度的目的。
本发明不局限于上述的优选实施方式,任何人应该得知在本发明的启示下做出的相似
变化,凡是与本发明具有相同或者相近似的技术方案,均属于本发明的保护范围。