券号生成方法、服务器和服务器集群的制作方法

文档序号:6637110阅读:267来源:国知局
券号生成方法、服务器和服务器集群的制作方法
【专利摘要】本发明公开了一种券号生成方法、服务器和服务器集群,该券号生成方法用于生成M位券号,范围在a与b之间;初始化备选券号缓冲区的步骤:S11、取p;S12、取R;S13、判断该备选券号缓冲区的备选券号是否为N个,若否,执行S14,若是,初始化结束;S14、根据公式R’=[(R-a+p)mod(b-a+1)]+a生成R’;S15、将最新生成的R’存入该备选券号缓冲区,并将最新生成的R’赋值给R,返回S13;在初始化结束后选取备选券号作为实际券号输出,并从该备选券号缓冲区移除。本发明弥补了现有的券号生成方法普遍存在安全风险大、生成效率低以及容易给电商平台造成严重损失的不足,具有安全且高效的优点。
【专利说明】券号生成方法、服务器和服务器集群

【技术领域】
[0001]本发明涉及一种券号生成方法、服务器和服务器集群。

【背景技术】
[0002]目前各大互联网电商平台都会推出电子优惠券或代金券,用户通过在电商平台上输入电子优惠券或代金券从而获得相应的优惠。这些电子优惠券或代金券的券号通常是由一个数字序列组成,现有的券号生成方法主要有以下几种:
[0003]1、顺序券号法:按顺序或一定的规律生成券号,如第一张券的券号为54584,第二张券的券号为54585,第三张券的券号为54586,这种方法生成的券号存在明显的规律,用户很容易通过一张券的券号推测出其它券的券号,这样会给电商平台带来很大的损失;
[0004]2、随机索引排重法:通过随机的排列组合生成券号,并在数据库建立庞大的已发券号索引用于记录已经发行过的券号,在下一次发行券时,先在数据库中进行查重,只将没有发行过的券号发行出去,这种方法由于券号是完全随机的,所以用户不容易猜出,电商平台相对比较安全,但是随着已发行过的券号数量越来越多,索引查重也变得越来越低效,从而影响券号生成的效率;
[0005]3、局部随机法:在按照顺序或一定的规律生成券号后,在将生成的券号中的一部分数字随机排列,如对11位券号的后四位进行随机,生成的券号如:12345670212,12345672901,12345678921等。这种方法由于随机的范围较小,且范围内的券可使用的概率很大,所以也存在较大的安全风险。如果扩大随机位数,比如扩大到8位,那么将占用服务器大量内存,且效率也十分低下。
[0006]由此看来,现有的券号生成方法普遍存在安全风险大、生成效率低以及容易给电商平台造成严重损失的问题。


【发明内容】

[0007]本发明要解决的技术问题是现有技术中的券号生成方法普遍存在安全风险大、生成效率低以及容易给电商平台造成严重损失的缺陷,提供一种安全且高效的券号生成方法、服务器和服务器集群。
[0008]本发明是通过以下技术方案解决上述技术问题的:
[0009]本发明提供一种券号生成方法,其特点是,该券号生成方法用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数;
[0010]该券号生成方法包括初始化一备选券号缓冲区的步骤,该备选券号缓冲区用于存储N个备选券号,N为正整数;
[0011]初始化该备选券号缓冲区的步骤包括:
[0012]Sn、取p,p为与b-a+Ι互质的数;
[0013]S12、取R,R的取值范围在a与b之间;
[0014]S13、判断该备选券号缓冲区存储的备选券号是否为N个,若否,执行S14,若是,初始化结束;
[0015]S14、根据公式 R,= [ (R-a+p)mod(b_a+l) ]+a 生成 R,;
[0016]S15、将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后返回S13 ;
[0017]该券号生成方法还包括:在初始化结束之后执行S21:在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。
[0018]其中,具有M位数字是指由M个数字组成的数字序列,如0329就属于具有4位数字的券号,003属于具有3位数字的券号;b_a+l表示的是在a与b之间可以生成的券号的总数量;S12中的R也可以作为备选券号存入该备用券号缓冲区。本技术方案将双射函数理论与实际应用相结合,生成的备选券号充分的满足随机性,即使用户获知一张实际券号也很难推测出其它的实际券号,具有很高的安全性,大大降低了电商平台因券号被破解所造成损失的风险。
[0019]较佳的,该券号生成方法还包括在将随机选取的该备选券号从该备选券号缓冲区移除之后执行以下步骤:
[0020]S22、根据公式R’ = [(R-a+p)mod(b_a+l)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。
[0021]较佳的,每次的R均存于一数据库中,该券号生成方法还包括:在初始化结束之后执行S31:在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除,该备用券号缓冲区和该待输出券号缓冲区均设于服务器中;
[0022]该券号生成方法还包括:将S21替换为以下步骤:
[0023]S211、判断该待输出券号缓冲区存储的待输出券号是否少于Q个,Q为正整数,若是,执行 §212, 若否,执行S213 ;
[0024]S212、在该备选券号缓冲区中随机选取至少一个备选券号作为待输出券号存入该待输出券号缓冲区,并将随机选取的该些备选券号从该备选券号缓冲区移除,然后返回§211 ;
[0025]S213、在该待输出券号缓冲区中随机选取一个待输出券号作为实际券号输出,并将随机选取的该待输出券号从该待输出券号缓冲区移除。
[0026]其中,Q小于或等于该待输出券号缓冲区能够存储的待输出券号的最大量,优选地Q可以远小于该待输出券号缓冲区能够存储的待输出券号的最大量。
[0027]本技术方案通过待输出券号缓存区的设置将存储备选券号和输出实际券号分配至不同的缓冲区,有助于减少数据库的访问次数,大大降低了数据库异常的概率,提高了执行效率,本技术方案尤其适用于在服务器集群上实现。
[0028]较佳的,S12为在a与b之间随机取R。
[0029]较佳的,a的范围为O至1t, t为小于M且大于或等于O的整数,b的范围为1s1-1Ot至10M。对于M较大的情况,可以通过本技术方案适当地缩小a和b的范围,如M= 11,t可以为5。
[0030]较佳的,P还在10M_B至b之间,B为N的数量级的指数。
[0031]本发明还提供一种服务器,其特点是,该服务器用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数;
[0032]该服务器包括一用于初始化一备选券号缓冲区的初始化单元,该备选券号缓冲区用于存储N个备选券号,N为正整数;
[0033]该初始化单兀包括一取P模块、一取R模块、一第一判断模块、一生成模块和一存入模块;
[0034]该取P模块用于取P, P为与b-a+Ι互质的数,然后调用该取R模块;
[0035]该取R模块用于取R,R的取值范围在a与b之间,然后调用该第一判断模块;
[0036]该第一判断模块用于判断该备选券号缓冲区存储的备选券号是否为N个,若否,调用该生成模块,若是,该初始化单元调用结束;
[0037]该生成模块用于根据公式R’ = [ (R-a+p) mod (b_a+l) ] +a生成R’,然后调用该存入模块;
[0038]该存入模块用于将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后调用该第一判断模块;
[0039]该服务器还包括一输出单元;
[0040]该输出单元用于在该初始化单元调用结束之后,在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。
[0041]较佳的,该服务器还包括一备选券号缓冲区补充模块,该备选券号缓冲区补充模块用于在将随机选取的该备选券号从该备选券号缓冲区移除之后,根据公式R’ =[(R-a+p)mod(b-a+l)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。
[0042]较佳的,每次的R均存于一数据库中,该服务器还包括:一待输出券号缓冲区补充模块,该待输出券号缓冲区补充模块用于在初始化结束之后,在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除,该备用券号缓冲区和该待输出券号缓冲区均设于服务器中;
[0043]该服务器还包括:将该输出单兀替换为一第二判断模块、一选号模块和一输出模块;
[0044]该第二判断模块用于在该初始化单元调用结束之后,判断一待输出券号缓冲区存储的待输出券号是否少于Q个,Q为正整数,若是,调用该选号模块,若否,调用该输出模块;
[0045]该选号模块用于在该备选券号缓冲区中随机选取至少一个备选券号作为待输出券号存入该待输出券号缓冲区,并将随机选取的该些备选券号从该备选券号缓冲区移除,然后调用该第二判断模块;
[0046]该输出模块用于在该待输出券号缓冲区中随机选取一个待输出券号作为实际券号输出,并将随机选取的该待输出券号从该待输出券号缓冲区移除。
[0047]较佳的,该取R模块还用于在a与b之间随机取R,然后调用该第一判断模块。
[0048]较佳的,a的范围为O至1t, t为小于M且大于或等于O的整数,b的范围为1s1-1Ot至 1m0
[0049]较佳的,P还在10M_B至b之间,B为N的数量级的指数。
[0050]本发明还提供一种服务器集群,其特点是,包括至少两个上述各优选条件任意组合的一种服务器。
[0051]在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0052]本发明的积极进步效果在于:本发明能输出满足随机性的实际券号,即使用户获知一张实际券号也很难推测出其它的实际券号,具有很高的安全性,大大降低了电商平台因券号被破解所造成损失的风险。

【专利附图】

【附图说明】
[0053]图1为本发明实施例1的券号生成方法的初始化备选券号缓冲区的流程图。
[0054]图2为本发明实施例1的券号生成方法的在初始化结束之后的流程图。
[0055]图3为本发明实施例1的服务器的示意图。
[0056]图4为本发明实施例2的券号生成方法的在初始化结束之后的流程图。
[0057]图5为本发明实施例2的服务器的示意图。

【具体实施方式】
[0058]下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0059]实施例1
[0060]—种券号生成方法,该券号生成方法用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数。
[0061]该券号生成方法包括初始化一备选券号缓冲区的步骤。其中,该备选券号缓冲区用于存储N个备选券号,N为正整数。
[0062]初始化该备选券号缓冲区的步骤参见图1,包括:
[0063]步骤1101、取p,P为与b-a+Ι互质的数。
[0064]步骤1102、取R,R的取值范围在a与b之间。R可以作为备选券号存入该备选券号缓冲区,也可以不存入该备选券号缓冲区。
[0065]步骤1103、判断该备选券号缓冲区存储的备选券号是否为N个,若否,执行步骤1104,若是,初始化结束。
[0066]步骤1104、根据公式 R’ = [ (R-a+p)mod(b_a+l) ]+a 生成 R’。
[0067]步骤1105、将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后返回步骤1103。
[0068]该券号生成方法还包括在初始化结束之后参见图2,执行以下步骤:
[0069]步骤1201、在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。
[0070]步骤1202、根据公式R’ = [ (R-a+p)mod(b_a+l) ]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。
[0071]本实施例中,每次的R均存于一数据库中,该券号生成方法通过访问该数据库获知R。
[0072]下面结合具体数字说明生成具有I位数字的券号的券号生成方法,设定券号的范围为2至9(即a = 2,b = 9)首先,执行初始化备选券号缓冲区的步骤,设定备选券号缓冲区用于存储3个备选券号:
[0073]在步骤1101中,取5作为p,因为5与8(b_a+l = 8)互质;在步骤1102中,在2至9之间随机取一个数作为R,如R = 5,并将5作为第一个备选券号存入该备选券号缓冲区;第一次执行步骤1103-1105,执行后2 (2通过公式R’ = [ (R-a+p)mod(b_a+l) ]+a算得,其中R = 5)作为第二个备选券号被存入该备选券号缓冲区;第二次执行步骤1103-1105,执行后7(7通过公式R’ = [0?-&+?)!110(103-&+1)]+&算得,其中1? = 2)作为第三个备选券号被存入该备选券号缓冲区,第三次执行步骤1103,判断出该备选券号缓冲区存储的备选券号已经达到3个,初始化结束。
[0074]若要输出实际券号,则执行步骤1201和步骤1202,在5、2和7中随机选取一个数作为实际券号输出,将4(4通过公式R’= [0?-&+?)!110(103-&+1)]+&算得,其中1? = 7)作为备选券号存入该备选券号缓冲区。
[0075]本实施例的服务器用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数。
[0076]参见图3,该服务器包括一用于初始化一备选券号缓冲区的初始化单元131、一输出单元132和一备选券号缓冲区补充模块133,该备选券号缓冲区用于存储N个备选券号,N为正整数。
[0077]该初始化单元131包括一取P模块1311、一取R模块1312、一第一判断模块1313、一生成模块1314和一存入模块1315。
[0078]该取P模块1311用于取p,P为与b-a+Ι互质的数,然后调用该取R模块1312。
[0079]该取R模块1312用于取R,R的取值范围在a与b之间,然后调用该第一判断模块1313。
[0080]该第一判断模块1313用于判断该备选券号缓冲区存储的备选券号是否为N个,若否,调用该生成模块1314,若是,该初始化单元131调用结束。
[0081]该生成模块1314用于根据公式R’ = [0^+口)1110(10^+1)]+3生成1?’,然后调用该存入模块1315。
[0082]该存入模块1315用于将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后调用该第一判断模块1313。
[0083]该输出单元132用于在该初始化单元131调用结束之后,在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除,然后调用该备选券号缓冲区补充模块133。
[0084]该备选券号缓冲区补充模块133用于根据公式R’ = [(R-a+p)mod(b-a+l)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R0
[0085]该备选券号缓冲区设于该服务器上。
[0086]本实施例的服务器集群包括至少两个服务器,该些服务器共用同一数据库存储R。
[0087]实施例2
[0088]本实施例的券号生成方法用于生成具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a的范围为O至1t, t为小于M且大于或等于O的整数,b的范围为1s1-1Ot至 1m0
[0089]该券号生成方法的初始化该备选券号缓冲区的步骤与实施例1基本相同相同,不同之处在于,本实施例的初始化该备选券号缓冲区的步骤中步骤1101取P时,P为与b-a+1互质的数且P还在10M_B至b之间,B为N的数量级的指数。
[0090]本实施例的券号生成方法与实施例1的不同之处还在于,本实施例的券号生成方法还包括:在初始化结束之后执行:在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除,该备用券号缓冲区和该待输出券号缓冲区均设于服务器中。
[0091]本实施例的券号生成方法还包括:将步骤1201替换为以下步骤,参见图4:
[0092]步骤2201、判断该待输出券号缓冲区存储的待输出券号是否少于Q个,Q为正整数,若是,执行步骤2202,若否,执行步骤2203。
[0093]步骤2202、在该备选券号缓冲区中随机选取至少一个备选券号作为待输出券号存入该待输出券号缓冲区,并将随机选取的该些备选券号从该备选券号缓冲区移除,然后返回步骤2201。
[0094]步骤2203、在该待输出券号缓冲区中随机选取一个待输出券号作为实际券号输出,并将随机选取的该待输出券号从该待输出券号缓冲区移除。
[0095]本实施例的券号生成方法还包括将实施例1中的步骤1202设为在将随机选取的该备选券号从该备选券号缓冲区移除之后执行。
[0096]下面结合具体数字说明生成具有12位数字的券号的券号生成方法,设定t = 5,a的范围为O至15,b的范围为111-1O5至1011,选定券号的范围为14至10n-105+l (即a =14, b = 10n-105+l):
[0097]首先,执行初始化备选券号缓冲区的步骤,设定备选券号缓冲区用于存储15个备选券号0 = 5):
[0098]在步骤1101中,取同时满足以下两个条件的数字作为P,条件I—与与10n-105104+2 互质,条件 2——在 16 至 111-1O5+1 之间;在步骤 1102 中,在 14 至 111-1O5+1之间随机取一个数作为R,并将R作为第一个备选券号存入该备选券号缓冲区;重复执行步骤1103-1105直至判断出该备选券号缓冲区存储的备选券号已经达到15个,初始化结束。
[0099]然后设定待输出券号缓冲区用于13个待输出券号,执行在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除的步骤,在该待输出券号缓冲区放入一定数量的的待输出券号。
[0100]若要输出实际券号,则执行步骤2201-步骤2203,在待输出券号缓冲区选取一个待输出券号作为实际券号输出,然后可以向该待输出券号缓冲区补充一定数量的待输出券号和/或执行步骤1202向该备用券号缓冲区补充一定量的备用券号。
[0101]通过以下方式对采用该券号生成方法输出的X张实际券号的安全性进行验证:
[0102]假设用户已知一张实际券号(编号T1),想要获知下一张实际券券号(编号T2),如果采用直接猜测的方式,则需要求解以下方程:
[0103]T2 = T^p-b+2a—I
[0104]T2猜测的范围量级=P的数量级(在16至10n_105+l之间),概率差不多在千亿分之一。
[0105]如果利用已知的两张实际券号(编号!^和!^)推算参数,由于X、p、a和b用户都未知,T1和T2之间相差的P的倍数为I至X ;要求P、a和b,需要求解以下方程:
[0106]k,P = β (b-a+1) +T2-T1
[0107]其中k’为T1和T2之间差的p的倍数(数量级和已发行的实际券号的数量X有关),数量级为Y,β为!^和^最多差了多少轮,最大值也是Y,!^-!^用户可知,为常数。a和b的数量级分别为105,P则为1011。所有变量共有10(11+5+5)*Y2个可能,仅凭2张券,方程应当会有无数的解,猜中所有参数的正确值的概率比采用直接猜测的概率还要低。如果使用暴力猜测,一一验证时,所需的计算量为10(11+5+5)*Υ2,Y最小值为100000(缓冲区大小)。假设为最小的情况——131次(Y随着时间应该越来越大),个人微机电脑需要运行约114年。
[0108]由此看出,该服务器生成的券号确实能够保证券号的安全性,很大程度上防止了电商平台受损失。而且本实施例的券号生成方法能够减少数据库的访问次数,降低数据库出现异常的概率。
[0109]本实施例的服务器用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a的范围为O至1St为小于M且大于或等于O的整数,b的范围为1s1-1Ot至1m0
[0110]参见图5,本实施例的服务器包括一用于初始化一备选券号缓冲区的初始化单元131,该备选券号缓冲区用于存储N个备选券号,N为正整数。该服务器的初始化单元131与实施例1的初始化单元131基本相同,不同之处在于,本实施例的初始化单元131的取P模块中P为与b-a+Ι互质的数且P还在11h3至b之间,B为N的位数。
[0111]本实施例的服务器与实施例1的服务器不同之处还在于,该服务器还包括:一待输出券号缓冲区补充模块2324,该待输出券号缓冲区补充模块用于在初始化结束之后,在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除,该备用券号缓冲区和该待输出券号缓冲区均设于服务器中。
[0112]该服务器还包括将实施例1的输出单元132替换为以下模块:
[0113]一第二判断模块2321用于在该初始化单元131调用结束之后,判断一待输出券号缓冲区存储的待输出券号是否少于Q个,Q为正整数,若是,调用一选号模块2322,若否,调用一输出模块2323。
[0114]该选号模块2322用于在该备选券号缓冲区中随机选取至少一个备选券号作为待输出券号存入该待输出券号缓冲区,并将随机选取的该些备选券号从该备选券号缓冲区移除,然后调用该第二判断模块2321。
[0115]该输出模块2323用于在该待输出券号缓冲区中随机选取一个待输出券号作为实际券号输出,并将随机选取的该待输出券号从该待输出券号缓冲区移除。
[0116]本实施例的服务器的备选券号缓冲区补充模块133用于在将随机选取的该备选券号从该备选券号缓冲区移除之后,根据公式R’ = [(R-a+p) mod (b-a+1)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。
[0117]本实施例的服务器集群包括至少两个服务器。该些服务器共用同一数据库存储R。
[0118]虽然以上描述了本发明的【具体实施方式】,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
【权利要求】
1.一种券号生成方法,其特征在于,该券号生成方法用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数; 该券号生成方法包括初始化一备选券号缓冲区的步骤,该备选券号缓冲区用于存储N个备选券号,N为正整数; 初始化该备选券号缓冲区的步骤包括: Sn、取P,P为与b-a+Ι互质的数; 512、取R,R的取值范围在a与b之间; 513、判断该备选券号缓冲区存储的备选券号是否为N个,若否,执行S14,若是,初始化结束;
514、根据公式R’ = [ (R-a+p)mod(b_a+l) ]+a 生成 R’ ; 515、将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后返回S13 ; 该券号生成方法还包括:在初始化结束之后执行S21:在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。
2.如权利要求1所述的券号生成方法,其特征在于,该券号生成方法还包括在将随机选取的该备选券号从该备选券号缓冲区移除之后执行以下步骤: S22、根据公式R’ = [(R-a+p)mod(b-a+l)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。
3.如权利要求1或2所述的券号生成方法,其特征在于,每次的R均存于一数据库中,该券号生成方法还包括:在初始化结束之后执行S31:在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除,该备选券号缓冲区和该待输出券号缓冲区均设于服务器中; 该券号生成方法还包括:将S21替换为以下步骤: 5211、判断该待输出券号缓冲区存储的待输出券号是否少于Q个,Q为正整数,若是,执行 §212, 若否,执行S213 ; 5212、在该备选券号缓冲区中随机选取至少一个备选券号作为待输出券号存入该待输出券号缓冲区,并将随机选取的该些备选券号从该备选券号缓冲区移除,然后返回S211 ; 5213、在该待输出券号缓冲区中随机选取一个待输出券号作为实际券号输出,并将随机选取的该待输出券号从该待输出券号缓冲区移除。
4.如权利要求1至3中任意一项所述的券号生成方法,其特征在于,S12为在a与b之间随机取R。
5.如权利要求1所述的券号生成方法,其特征在于,a的范围为O至1St为小于M且大于或等于O的整数,b的范围为Kf-1Ot至10M。
6.如权利要求1所述的券号生成方法,其特征在于,P还在10M_B至b之间,B为N的数量级的指数。
7.一种服务器,其特征在于,该服务器用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数; 该服务器包括一用于初始化一备选券号缓冲区的初始化单元,该备选券号缓冲区用于存储N个备选券号,N为正整数; 该初始化单兀包括一取P模块、一取R模块、一第一判断模块、一生成模块和一存入模块; 该取P模块用于取P,P为与b-a+Ι互质的数,然后调用该取R模块; 该取R模块用于取R,R的取值范围在a与b之间,然后调用该第一判断模块; 该第一判断模块用于判断该备选券号缓冲区存储的备选券号是否为N个,若否,调用该生成模块,若是,该初始化单元调用结束; 该生成模块用于根据公式R’ = [0?1+?)!110(103-&+1)]+&生成1?’,然后调用该存入模块; 该存入模块用于将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后调用该第一判断模块; 该服务器还包括一输出单兀; 该输出单元用于在该初始化单元调用结束之后,在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。
8.如权利要求7所述的服务器,其特征在于,该服务器还包括一备选券号缓冲区补充模块,该备选券号缓冲区补充模块用于在将随机选取的该备选券号从该备选券号缓冲区移除之后,根据公式R’ = [(R-a+p)mod(b-a+l)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。
9.如权利要求7或8所述的服务器,其特征在于,每次的R均存于一数据库中,该服务器还包括:一待输出券号缓冲区补充模块,该待输出券号缓冲区补充模块用于在初始化结束之后,在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除,该备用券号缓冲区和该待输出券号缓冲区均设于服务器中; 该服务器还包括:将该输出单元替换为一第二判断模块、一选号模块和一输出模块; 该第二判断模块用于在该初始化单元调用结束之后,判断一待输出券号缓冲区存储的待输出券号是否少于Q个,Q为正整数,若是,调用该选号模块,若否,调用该输出模块;该选号模块用于在该备选券号缓冲区中随机选取至少一个备选券号作为待输出券号存入该待输出券号缓冲区,并将随机选取的该些备选券号从该备选券号缓冲区移除,然后调用该第二判断模块; 该输出模块用于在该待输出券号缓冲区中随机选取一个待输出券号作为实际券号输出,并将随机选取的该待输出券号从该待输出券号缓冲区移除。
10.如权利要求7-9中任意一项所述的服务器,其特征在于,该取R模块还用于在a与b之间随机取R,然后调用该第一判断模块。
11.如权利要求7所述的服务器,其特征在于,a的范围为O至1t,t为小于M且大于或等于O的整数,b的范围为Kf-1Ot至10M。
12.如权利要求7所述的服务器,其特征在于,P还在10M_B至b之间,B为N的数量级的指数。
13.一种服务器集群,其特征在于,包括至少两个如权利要求7-12中任意一项所述的服务器。
【文档编号】G06Q30/02GK104463626SQ201410727147
【公开日】2015年3月25日 申请日期:2014年12月3日 优先权日:2014年12月3日
【发明者】汤波, 赵阳, 刘琦 申请人:携程计算机技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1