CN109960487A - 一种抽取对象的方法和装置 - Google Patents
一种抽取对象的方法和装置 Download PDFInfo
- Publication number
- CN109960487A CN109960487A CN201711338207.XA CN201711338207A CN109960487A CN 109960487 A CN109960487 A CN 109960487A CN 201711338207 A CN201711338207 A CN 201711338207A CN 109960487 A CN109960487 A CN 109960487A
- Authority
- CN
- China
- Prior art keywords
- numerical intervals
- random number
- sequence
- probability
- prize
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种抽取对象的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据为各对象配置的抽中概率设置各对象对应的数值区间;生成随机数,并查找所述随机数所属的数值区间;输出所述随机数所属的数值区间对应的对象的信息。该实施方式在高并发、对象数量大的情况下,能够便于较精确地预估对象抽取活动的成本,并实现高效快速及时地计算出当前抽中的对象,此外,使得可以简单便捷地配置抽中概率,抽中概率直观。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种抽取对象的方法和装置。
背景技术
随着互联网的发展,许多线下业务已经逐步转变为在互联网上实现,例如抽取对象的业务由过去的线下进行发展为在线上进行抽取对象,由于互联网用户的巨大数量以及活动的时效性,使得线上抽取对象具有并发量大、对响应速度要求高的特点,如何精确控制成本、控制概率、响应及时成为新的问题。解决此问题需要一种稳定的高效的算法来支持。
现有的线上抽取对象的方案:一是权重法,即给对象配置权重,然后判断随机数落在那个权重范围;二是平均分布法,即给对象设置一个0-99的范围,然后生成一个小于100的随机数,判断随机数落在哪个区间。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有的方案在高并发情况下无法较精确的预估成本且比较耗时。
发明内容
有鉴于此,本发明实施例提供一种抽取对象的方法和装置,在高并发、对象数量大的情况下,能够便于较精确地预估对象抽取活动的成本,并实现高效快速及时地计算出当前抽中的对象,此外,使得可以简单便捷地配置抽中概率,抽中概率直观。
为实现上述目的,根据本发明实施例的一个方面,提供了一种抽取对象的方法。
一种抽取对象的方法,包括:根据为各对象配置的抽中概率设置各对象对应的数值区间;生成随机数,并查找所述随机数所属的数值区间;输出所述随机数所属的数值区间对应的对象的信息。
可选地,根据为各对象配置的抽中概率设置各对象对应的数值区间的步骤,包括:按照为各对象配置的抽中概率对各对象排序得到一个对象序列,根据为各对象配置的抽中概率设置各对象对应的数值区间的起始值和截止值,其中:将抽中概率最小的一个对象对应的数值区间的起始值和截止值分别设置为零和该对象的概率指示值;将所述对象序列的除所述抽中概率最小的一个对象之外的剩余对象中,每对象对应的数值区间的起始值设置为排列在该对象的前一位置的一个对象对应的数值区间的截止值,并且将该对象对应的数值区间的截止值设置为该对象对应的数值区间的起始值与该对象的概率指示值的加和;其中,一对象的概率指示值为该对象的抽中概率与抽取基数的乘积。
可选地,查找所述随机数所属的数值区间的步骤,包括:步骤一,将数值区间序列作为当前查找序列,所述数值区间序列为由所述对象序列中各对象对应的数值区间组成的序列;步骤二,将位于所述当前查找序列的中间位置的数值区间作为比对数值区间,并将所述随机数与所述比对数值区间的起始值和截止值进行比对,根据比对结果判断是否查找到所述随机数所属的数值区间,若查找到所述随机数所属的数值区间,则结束当前的查找流程;否则,根据所述比对结果确定所述随机数所属的子序列,所述子序列为由所述当前查找序列中由位于所述比对数值区间之前或之后的数值区间组成的序列,然后将所述随机数所属的子序列作为新的当前查找序列,并循环执行步骤二,直到所述步骤二的执行次数达到预设值之后,停止循环执行步骤二并跳转到步骤三;步骤三,遍历由所述步骤二得到的最新的当前查找序列,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间;若查找到所述随机数所属的数值区间,则结束当前的查找流程;否则,输出异常报警消息。
可选地,根据比对结果判断是否查找到所述随机数所属的数值区间的步骤,包括:如果所述随机数大于或等于所述比对数值区间的起始值且小于所述比对数值区间的截止值,则判定所述比对数值区间为所述随机数所属的数值区间;如果所述随机数等于所述比对数值区间的截止值,则判定所述当前查找序列中位于所述比对数值区间的后一位置的数值区间为所述随机数所属的数值区间;如果所述随机数小于所述比对数值区间的起始值或大于所述比对数值区间的截止值,则判定未查找到所述随机数所属的数值区间;根据所述比对结果确定所述随机数所属的子序列的步骤,包括:如果所述随机数小于所述比对数值区间的起始值,则确定所述随机数所属的子序列为由所述当前查找序列之中由位于所述比对数值区间之前的数值区间组成的序列;如果所述随机数大于所述比对数值区间的截止值,则确定所述随机数所属的子序列为由所述当前查找序列之中由位于所述比对数值区间之后的数值区间组成的序列。
可选地,遍历由所述步骤二得到的最新的当前查找序列,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间的步骤,包括:逐一将所述随机数与所述最新的当前查找序列中的每个数值区间的起始值和截止值进行比对,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间,其中,如果查找到一满足如下条件的数值区间:所述随机数大于或等于该数值区间的起始值且小于该数值区间的截止值,则该数值区间为所述随机数所属的数值区间。
可选地,根据为各对象配置的抽中概率设置各对象对应的数值区间的步骤之前,包括:配置抽取基数和各对象的抽中概率,以使得至少满足如下条件:所述抽取基数为10的倍数;所述各对象的概率指示值为整数;所述各对象的概率指示值之和为所述抽取基数。
根据本发明实施例的另一方面,提供了一种抽取对象的装置。
一种抽取对象的装置,包括:设置模块,用于根据为各对象配置的抽中概率设置各对象对应的数值区间;查找模块,用于生成随机数,并查找所述随机数所属的数值区间;输出模块,用于输出所述随机数所属的数值区间对应的对象的信息。。
可选地,设置模块还用于:按照为各对象配置的抽中概率对各对象排序得到一个对象序列,根据为各对象配置的抽中概率设置各对象对应的数值区间的起始值和截止值,其中:将抽中概率最小的一个对象对应的数值区间的起始值和截止值分别设置为零和该对象的概率指示值;将所述对象序列的除所述抽中概率最小的一个对象之外的剩余对象中,每对象对应的数值区间的起始值设置为排列在该对象的前一位置的一个对象对应的数值区间的截止值,并且将该对象对应的数值区间的截止值设置为该对象对应的数值区间的起始值与该对象的概率指示值的加和;其中,一对象的概率指示值为该对象的抽中概率与抽取基数的乘积。
可选地,所述查找模块包括数值区间查找单元,用于执行如下步骤:步骤一,将数值区间序列作为当前查找序列,所述数值区间序列为由所述对象序列中各对象对应的数值区间组成的序列;步骤二,将位于所述当前查找序列的中间位置的数值区间作为比对数值区间,并将所述随机数与所述比对数值区间的起始值和截止值进行比对,根据比对结果判断是否查找到所述随机数所属的数值区间,若查找到所述随机数所属的数值区间,则结束当前的查找流程;否则,根据所述比对结果确定所述随机数所属的子序列,所述子序列为由所述当前查找序列中由位于所述比对数值区间之前或之后的数值区间组成的序列,然后将所述随机数所属的子序列作为新的当前查找序列,并循环执行步骤二,直到所述步骤二的执行次数达到预设值之后,停止循环执行步骤二并跳转到步骤三;步骤三,遍历由所述步骤二得到的最新的当前查找序列,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间;若查找到所述随机数所属的数值区间,则结束当前的查找流程;否则,输出异常报警消息。
可选地,所述数值区间查找单元包括判断子单元,用于:如果所述随机数大于或等于所述比对数值区间的起始值且小于所述比对数值区间的截止值,则判定所述比对数值区间为所述随机数所属的数值区间;如果所述随机数等于所述比对数值区间的截止值,则判定所述当前查找序列中位于所述比对数值区间的后一位置的数值区间为所述随机数所属的数值区间;如果所述随机数小于所述比对数值区间的起始值或大于所述比对数值区间的截止值,则判定未查找到所述随机数所属的数值区间;所述数值区间查找单元还包括确定子单元,用于:如果所述随机数小于所述比对数值区间的起始值,则确定所述随机数所属的子序列为由所述当前查找序列之中由位于所述比对数值区间之前的数值区间组成的序列;如果所述随机数大于所述比对数值区间的截止值,则确定所述随机数所属的子序列为由所述当前查找序列之中由位于所述比对数值区间之后的数值区间组成的序列。
可选地,所述数值区间查找单元包括查找子单元,用于:逐一将所述随机数与所述最新的当前查找序列中的每个数值区间的起始值和截止值进行比对,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间,其中,如果查找到一满足如下条件的数值区间:所述随机数大于或等于该数值区间的起始值且小于该数值区间的截止值,则该数值区间为所述随机数所属的数值区间。
可选地,还包括配置模块,用于:配置抽取基数和各对象的抽中概率,以使得至少满足如下条件:所述抽取基数为10的倍数;所述各对象的概率指示值为整数;所述各对象的概率指示值之和为所述抽取基数。
根据本发明实施例的又一方面,提供了一种服务器。
一种服务器,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例的抽取对象的方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的抽取对象的方法。
上述发明中的一个实施例具有如下优点或有益效果:根据为各对象配置的抽中概率设置各对象对应的数值区间;生成随机数,并查找所述随机数所属的数值区间;输出所述随机数所属的数值区间对应的对象的信息。在高并发、对象数量大的情况下,能够便于较精确地预估对象抽取的成本,并实现高效快速及时地计算出当前抽中的对象,此外,设置数值区间所使用的概率指示值为相应对象的抽中概率与抽取基数的乘积,使得相关人员可以简单便捷地为对象配置实际被抽中的概率,抽中概率直观。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的实现网络抽奖的方法的主要步骤示意图;
图2是根据本发明实施例的实现网络抽奖的方法的优选流程示意图;
图3是根据本发明实施例的实现网络抽奖的装置的主要模块示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面以网络抽奖为例,详细介绍本发明实施例的抽取对象的方法和装置。本发明实施例在网络抽奖的应用场景中,抽取对象的方法即实现网络抽奖的方法,抽取对象的装置即实现网络抽奖的装置,并且,对象可以为各类型的奖品,数值区间可以是中奖区间,对象的信息可以是奖品信息,对象序列可以是奖品序列,抽取基数可以是抽奖基数。需要说明的是,本发明的抽取对象的方法和装置适用于各种抽取对象的场景,对象不仅限于奖品,还可以例如为参与网络摇号的用户,相应地对象的信息可以是用户标识等信息。
图1是根据本发明实施例的实现网络抽奖的方法的主要步骤示意图。
如图1所示,本发明实施例的实现网络抽奖的方法主要包括如下的步骤S101至步骤S103。
步骤S101:根据为各类型奖品配置的抽中概率设置各类型奖品对应的中奖区间。
各类型奖品的抽中概率即各类型奖品被抽中的概率,本发明实施例中“各类型奖品”中涉及的奖品的“类型”可表示奖品的品种、类别、或仅仅用于区别不同奖品的相同产品的型号、大小等,例如一个类型的奖品可以是服装,另一类型的奖品可以是小家电;或者,一个类型的奖品可以是大容量电饭煲,另一个类型的奖品可以是迷你型电饭煲。
在步骤S101之前,还可以配置抽奖基数和各类型奖品的抽中概率,以使得至少满足如下条件:
抽奖基数为10的倍数;
各类型奖品的概率指示值为整数;
各类型奖品的概率指示值之和为抽奖基数。
其中,某一类型奖品的概率指示值为该类型奖品的抽中概率与抽奖基数的乘积。抽奖基数为本次抽奖活动中所有类型的奖品的总数量。
步骤S101具体包括:按照为各类型奖品配置的抽中概率对各类型奖品排序得到一个奖品序列,其中相同类型的奖品位于奖品序列中的同一位置,根据为各类型奖品配置的抽中概率设置各类型奖品对应的中奖区间的起始值和截止值,其中:
将抽中概率最小的一个类型的奖品对应的中奖区间的起始值和截止值分别设置为零和该类型奖品的概率指示值;
将所述奖品序列的除所述抽中概率最小的一个类型的奖品之外的剩余类型奖品中,每类型奖品对应的中奖区间的起始值设置为排列在该类型奖品的前一位置的一个类型的奖品对应的中奖区间的截止值,并且将该类型奖品对应的中奖区间的截止值设置为该类型奖品对应的中奖区间的起始值与该类型奖品的概率指示值的加和。
相同类型的奖品位于奖品序列中的同一位置例如,某一奖品为电饭煲,且电饭煲的数量为1000个,则该1000个电饭煲应位于奖品序列中的同一位置(而不是位于1000个位置)。
由于根据为各类型奖品配置的抽中概率设置各类型奖品对应的中奖区间,使得运营人员根据配置的抽中概率即可精确的预估本次抽奖活动的成本,无需复杂计算,并便于核查配置是否正确或遗漏,还可使奖品实际被抽中的概率与预先配置的概率一致,从而保证抽奖活动成本可控,并减轻运营人员工作负担。
由于设置中奖区间所使用的概率指示值为相应类型奖品的抽中概率与抽奖基数的乘积,使得运营人员可以简单便捷地为奖品配置实际被抽中的概率,抽中概率直观。例如,配置某类型奖品的抽中概率为3%,抽奖基数预先设定为1000,假设该类型奖品A为抽中概率最小的一个类型的奖品,则根据上述步骤,该类型奖品的中奖区间的起始值和截止值分别为0和30(即抽奖基数1000与配置的抽中概率3%的乘积),中奖区间为[0,30),那么运营人员只需根据抽奖基数和预先配置的中奖概率来设置中奖区间[0,30)即可保证该类型奖品实际被抽中的概率为3%,且能够容易地根据中奖区间的值直观地获取到中奖概率为30/1000,即3%。同样,假设该类型奖品B不是抽中概率最小的一个类型的奖品,例如是在奖品序列排列在第二个位置,与上述奖品A的位置相邻,奖品A的中奖区间为[0,30),假设抽奖基数仍未1000,奖品B的配置的抽中概率为5%,则根据上述步骤,同样能够简单便捷地根据抽奖基数和预先配置的中奖概率来设置奖品B的中奖区间为[30,80),使奖品B实际被抽中的概率为5%,并且能够容易地根据中奖区间的值直观地获取到中奖概率为(80-30)/1000,即5%。
步骤S102:接收用户的抽奖请求并生成与抽奖请求关联的随机数,然后查找随机数所属的中奖区间。
其中,查找随机数所属的中奖区间的步骤,具体可以包括:
步骤一,将中奖区间序列作为当前查找序列,该中奖区间序列为由奖品序列中各奖品对应的中奖区间组成的序列;
步骤二,将位于当前查找序列的中间位置的中奖区间作为比对中奖区间,并将随机数与所述比对中奖区间的起始值和截止值进行比对,根据比对结果判断是否查找到随机数所属的中奖区间,
若查找到随机数所属的中奖区间,则结束当前的查找流程;
否则,根据比对结果确定随机数所属的子序列,所述子序列为由当前查找序列之中由位于比对中奖区间之前或之后的中奖区间组成的序列,然后将随机数所属的子序列作为新的当前查找序列,并循环执行步骤二,直到步骤二的执行次数达到预设值之后,停止循环执行步骤二并跳转到步骤三;
步骤三,遍历由步骤二得到的最新的当前查找序列,以在最新的当前查找序列的各中奖区间中逐一查找随机数所属的中奖区间,
若查找到随机数所属的中奖区间,则结束当前的查找流程;
否则,输出异常报警消息。
上述步骤二中,根据比对结果判断是否查找到所述随机数所属的中奖区间的步骤,具体可以包括:
如果所述随机数大于或等于比对中奖区间的起始值且小于所述比对中奖区间的截止值,则判定比对中奖区间为随机数所属的中奖区间;
如果随机数等于比对中奖区间的截止值,则判定当前查找序列中位于比对中奖区间的后一位置的中奖区间为随机数所属的中奖区间;
如果随机数小于比对中奖区间的起始值或大于比对中奖区间的截止值,则判定未查找到随机数所属的中奖区间。
上述步骤二中,根据比对结果确定随机数所属的子序列的步骤,具体可以包括:
如果随机数小于比对中奖区间的起始值,则确定随机数所属的子序列为由当前查找序列之中由位于比对中奖区间之前的中奖区间组成的序列;
如果随机数大于比对中奖区间的截止值,则确定随机数所属的子序列为由当前查找序列之中由位于比对中奖区间之后的中奖区间组成的序列。
上述步骤三中,遍历由步骤二得到的最新的当前查找序列,以在最新的当前查找序列的各中奖区间中逐一查找所述随机数所属的中奖区间的步骤,具体可以包括:
逐一将随机数与最新的当前查找序列中的每个中奖区间的起始值和截止值进行比对,以在最新的当前查找序列的各中奖区间中逐一查找所述随机数所属的中奖区间,其中,
如果查找到一满足如下条件的中奖区间:随机数大于或等于该中奖区间的起始值且小于该中奖区间的截止值,则该中奖区间为随机数所属的中奖区间。
根据本发明实施例的查找随机数所属的中奖区间的方法,能够在高并发、奖品量大的情况下,高效快速及时地计算出当前抽奖用户的中奖奖品,节省运算的耗时。
步骤S103:输出随机数所属的中奖区间对应的奖品信息。
图2是根据本发明实施例的实现网络抽奖的方法的优选流程示意图。
如图2所示,本发明实施例的实现网络抽奖的方法的优选流程包括如下的步骤S201至步骤S206。
步骤S201:配置奖品信息和抽奖信息。
其中,配置奖品信息的过程具体可以包括接收运营人员选择录入的抽奖奖品的信息,抽奖奖品的信息可以包括奖品的名称、ID(标识)、奖品所属品类等信息,奖品所属品类可以是服装品类、玩具品类、小家电品类等,并保存这些抽奖奖品的信息,如果保存未成功,可通过报错消息提示运营人员重新录入上述信息并保存。
配置抽奖信息的过程具体可以包括接收运营人员选择或录入的各类型奖品的抽中概率、抽奖结果展示位置的数量、各展示位置对应的奖品类型、抽奖基数等信息,并保存这些信息(这些信息可同时或依次接收并保存,当依次接收并保存时,接收并保存的顺序不构成对本发明实施例的限定)。
抽奖基数可限定为10的倍数,并且在接收运营人员选择或录入抽奖基数之后,可判定该抽奖基数是否为10的倍数,如果是,则保存该抽奖基数,否则,通过报错消息提示运营人员重新选择或录入该抽奖基数以便重新配置该抽奖基数。配置的抽奖信息还可包括运营人员选择或录入的各类型奖品的概率指示值(这种情况下概率指示值的具体数值是运营人员人为地根据期望设置的各类型的抽中概率来确定的),该概率指示值也可以根据对应类型奖品的抽中概率与抽奖基数的乘积获得(此属于运营人员选择或录入期望设置的各类型奖品的抽中概率,然后通过本发明实施例进行简单的运算得出概率指示值的情况),保存得到的各类型奖品的概率指示值,该概率指示值反映了与抽中概率相关的信息,通过概率指示值可无需复杂计算即可快速得出对应类型奖品的抽中概率,概率指示值通常可限定为整数,因此,在保存得到的各类型奖品的概率指示值之前,可先判断得到的概率指示值是否为整数,如果是,则保存该概率指示值,否则,通过报错消息提示运营人员重新选择或录入概率指示值,或者提示运营人员重新选择或录入抽中概率,以便根据新的抽中概率与抽奖基数的乘积获得新的概率指示值。
在保存上述奖品信息和抽奖信息之后,还可以判断保存的概率指示值之和是否等于抽奖基数,如果是,则步骤S201结束,否则,提示运营人员修改选择或录入的抽中概率或概率指示值,直到保存的概率指示值之和等于抽奖基数之后,步骤S201结束。
通过配置抽奖基数为10的倍数,且各类型奖品的概率指示值为整数,以及各类型奖品的概率指示值之和等于抽奖基数,使得运营人员可以直观地了解各类型奖品的概率,无需复杂计算,从而快速并精确地预估抽奖活动的成本,并且使得运营人员能够便捷地核实配置的各类型奖品的概率是否存在错误或遗漏的情况,减轻运营人员的工作负担。
步骤S202:按照各类型奖品的抽中概率对各类型奖品排序得到一个奖品序列。
从数据库中读取保存的奖品信息和抽奖信息,并对各类型奖品按照抽奖信息中各类型奖品的抽中概率从大到小排序,得到一个奖品序列,以使各类型奖品的抽中概率成为一个有序的序列,其中,每个类型的奖品对应一个序号。
步骤S203:根据各类型奖品的ID和奖品序列生成各类型奖品对应的二维数组。
各类型奖品对应的二维数组包括各类型奖品的ID以及该类型奖品对应的中奖区间的信息。
步骤S203生成上述二维数组的过程具体包括:首先根据各类型奖品的抽中概率和抽奖基数获得各类型奖品的概率指示值,如果在步骤S201中运营人员在配置抽奖信息时选择或录入了各类型奖品的概率指示值,则可直接读取保存的该概率指示值。然后,从抽中概率大于0的一个类型的奖品开始,累加各类型奖品的概率指示值,直到累加完所有奖品的概率指示值,每累加一次,生成一个二维数组,该二维数组中每一行的数据对应为各类型奖品对应的中奖区间的起始值、中奖区间的截止值、奖品的ID,各类型奖品对应的中奖区间为一个的左闭右开的区间,形式为:[中奖区间的起始值,中奖区间的截止值)。
下面举例介绍生成上述二维数组的具体过程。假设n个类型奖品p1,p2,……,pn的ID分别为id1,id2,……,idn;各奖品对应的概率指示值分别为a1,a2,……,an;其中,n为整数,则:
第一个类型的奖品p1对应的二维数组元素为{0,a1,id1},p1对应的中奖区间的起始值为0、截止值为a1,p1对应的中奖区间为:[0,a1);
第二个类型的奖品p2对应的二维数组元素为{a1,a1+a2,id2},p2对应的中奖区间的起始值为a1、截止值为a1+a2,p2对应的中奖区间为:[a1,a1+a2);
第三个类型的奖品p3对应的二维数组元素为{a1+a2,a1+a2+a3,id3},p3对应的中奖区间的起始值为a1+a2、截止值为a1+a2+a3,p3对应的中奖区间为:[a1+a2,a1+a2+a3);
……
以此类推,第n个类型的奖品pn对应的二维数组元素为:
pn对应的中奖区间的起始值为截止值为pn对应的中奖区间为:
最后,根据上述n个类型奖品对应的各对应的二维数组元素得到一个n行3列的二维数组,将生成的这个二维数组作为一个调用系统不可更改的值,存入内存中。
步骤S204:接到用户抽奖请求之后,生成一个小于抽奖基数的随机整数randNumber。
步骤S205:查找随机数randNumber所属的中奖区间。
步骤S205具体可以包括如下的步骤:
步骤1:读取内存中的二维数组,为了方便表述记二维数组为arrA,并可根据数组序号来表示二维数组arrA的数组元素,例如arrA[0]表示二维数组arrA的第一个数组元素,其中,数组序号为二维数组中各数组元素的序号。进行数据初始化,初始化具体可包括记录二维数组arrA的长度(记作length),即length=arrA.lenth,对于奖品为n个类型的抽奖活动,length的值即为n。初始化查找的次数i,即设置i=0,初始化当前查找的数组序号的起始位置begin和结束位置end,即设置begin=0且end=length,然后,进行步骤2。
步骤2:依据当前查找序号的起始位置begin及结束位置end,查找到当前查找范围的居中数组序号index(index=(begin+end)/2),得到该居中序号的数组元素(arrB=arrA[index])作为比对数组元素。如果此步骤执行大于3次,则进行步骤5;如果此步骤小于或等于3次,则进行步骤3。当前查找序号即当前查找的数组序号。
步骤3:如果随机数randNumber小于该比对数组的起始值(即randNumber<arrB[0]),那么,确认随机数randNumber出现在二维数组的前半段(即数组序号为0至index之间的二维数组元素之间),然后将查找范围结束位置置为当前的数组序号且查找次数加1(即:end=index;i++),并记录该新的查找范围,然后重复步骤2;如果随机数randNumber大于或等于该比对数组的起始值(arrB[0]<=randNumber),则进行步骤4。
为了清除地说明上述步骤3的技术内容,需要对上述步骤3的一些名词、概念或技术细节做出进一步地说明。具体地,根据步骤S203,各类型奖品对应的二维数组包括各类型奖品的ID以及该类型奖品对应的中奖区间的信息,且二维数组中每一行的数据对应为各类型奖品对应的中奖区间的起始值、中奖区间的截止值、奖品的ID,因此,比对数组元素arrB的具体形式应为:{数组序号为index的某类型奖品对应的中奖区间的起始值;该中奖区间的截止值;该类型奖品的ID},本领域技术人员可以理解的是,比对数组元素arrB也可以视为一个1行3列的数组,比对数组元素arrB也因此可称为比对数组arrB,该比对数组arrB中的元素arrB[0]、arrB[1]、arrB[2]分别对应为:arrB[0]=数组序号为index的某类型奖品对应的中奖区间的起始值;arrB[1]=数组序号为index的某类型奖品对应的中奖区间的截止值;arrB[2]=数组序号为index的某类型奖品的ID。由于比对数组arrB之中的前两个数组元素arrB[0]、arrB[1]分别对应中奖区间的起始值和截止值,因此,arrB[0]也可称为比对数组的起始值,arrB[1]也可称为比对数组的截止值。确认随机数randNumber在二维数组出现的位置范围,其实质即确认随机数randNumber所属的中奖区间的范围,上述的确认随机数randNumber出现在二维数组的前半段,即确认随机数randNumber出现在二维数组中前index个类型的奖品对应的中奖区间之中。本段对上述步骤3的一些名词、概念或技术细节做出的说明也适用于步骤4至步骤7。
步骤4:如果随机数randNumber大于或等于该比对数组的截止值arrB[1],那么,先判断随机数randNumber是否等于该数组的截止值arrB[1],即判断是否arrB[1]=randNumber,如果二者相等,则可确认用户抽中了位于数组序号为index对应的奖品的下一个位置的奖品,并返回中奖奖品的ID(arrA[index+1][2],即arrA的第index+1行、第3列数据);如果二者不相等,则确认随机数randNumber出现在二维数组的的后半段,将查找范围结束起始位置置为当前的数组序号(index)且查找次数加1(即begin=index;i++),并记录该新的查找范围,然后重复步骤2;如果随机数randNumber小于该数组的截止值arrB[1],即arrB[1]>randNumber,则可确认用户抽中了该位于数组序号为index对应的奖品。返回中奖奖品的ID(即返回arrA[index][2],表示arrA的第index行、第3列数据)。
步骤5:根据记录的新的查找范围,遍历比对该新的查找范围中的每一个二维数组元素和随机数randNumber,即从数组序号begin=0开始到end=index之间的范围(randNumber出现在二维数组的前半段的情况),或者从数组序号begin=index至end=length之间的范围(randNumber出现在二维数组的后半段的情况)。将查找序号的变量设为j,j的起始位置为begin(即j=begin),得到当前该新的查找范围的比对数组arrB1=arrA[j],如果查找序号超过记录的结束序号(j>=end),查找流程扔未结束,则返回-1(即输出异常报警消息),代表系统配置异常,未能找到抽中的奖品的ID,否则进行步骤6。
步骤6:如果随机数randNumber,小于当前比对数组arrB1的起始值arrB1[0],即randNumber<arrB1[0]),则返回-1(即输出异常报警消息),代表系统配置异常,未能找到抽中的奖品的ID。如果随机数randNumber大于或等于当前比对数组的起始值arrB[0],即arrB[0]<=randNumber,则进行步骤7。
步骤7:如果随机数randNumber大于或等于当前比对数组的截止值arrB[1],即randNumber>=arrB[1],则将查找序号加1(即j++),并重复步骤5;如果随机数randNumber小于当前比对数组的截止值arrB[1],即arrB[1]>randNumber,则可确认用户抽中了该查找序号j对应的奖品,返回中奖奖品ID,即返回arrA[j][2])。
步骤S206:输出随机数randNumber所属的中奖区间对应的奖品信息。
步骤S206具体包括将随机数randNumber所属的中奖区间对应的奖品信息例如奖品的ID、图片、名称或者其他奖品展示所需的信息等输出到对应的抽奖结果展示位置。抽奖结果展示位置可以表现为各种形式,例如九宫格等形式。
本发明实施例在高并发、奖品量大的情况下,能够方便运营人员较精确地预估抽奖活动的成本,并实现高效快速及时地计算出当前抽奖用户的中奖奖品,此外,设置数值区间所使用的概率指示值为相应对象的抽中概率与抽取基数的乘积,使得运营人员可以简单便捷地为奖品配置实际被抽中的概率,抽中概率直观。
图3是根据本发明实施例的实现网络抽奖的装置的主要模块示意图。
如图3所示,本发明实施例的实现网络抽奖的装置300主要包括:设置模块301、查找模块302、输出模块303。
设置模块301用于根据为各类型奖品配置的抽中概率设置各类型奖品对应的中奖区间。
各类型奖品的抽中概率即各类型奖品被抽中的概率,本发明实施例中“各类型奖品”中涉及的奖品的“类型”可表示奖品的品种、类别、或仅仅用于区别不同奖品的相同产品的型号、大小等,例如一个类型的奖品可以是服装,另一类型的奖品可以是小家电;或者,一个类型的奖品可以是大容量电饭煲,另一个类型的奖品可以是迷你型电饭煲。
具体地,设置模块301按照为各类型奖品配置的抽中概率对各类型奖品排序得到一个奖品序列,其中相同类型的奖品位于所述奖品序列中的同一位置,根据为各类型奖品配置的抽中概率设置各类型奖品对应的中奖区间的起始值和截止值,其中:
将抽中概率最小的一个类型的奖品对应的中奖区间的起始值和截止值分别设置为零和该类型奖品的概率指示值;
将所述奖品序列的除抽中概率最小的一个类型的奖品之外的剩余类型奖品中,每类型奖品对应的中奖区间的起始值设置为排列在该类型奖品的前一位置的一个类型的奖品对应的中奖区间的截止值,并且将该类型奖品对应的中奖区间的截止值设置为该类型奖品对应的中奖区间的起始值与该类型奖品的概率指示值的加和;
其中,一类型奖品的概率指示值为该类型奖品的抽中概率与抽奖基数的乘积。
查找模块302用于接收用户的抽奖请求并生成与所述抽奖请求关联的随机数,然后查找所述随机数所属的中奖区间。
查找模块302具体可包括中奖区间查找单元,用于执行如下步骤:
步骤一,将中奖区间序列作为当前查找序列,中奖区间序列为由所述奖品序列中各奖品对应的中奖区间组成的序列;
步骤二,将位于当前查找序列的中间位置的中奖区间作为比对中奖区间,并将所述随机数与比对中奖区间的起始值和截止值进行比对,根据比对结果判断是否查找到随机数所属的中奖区间,
若查找到随机数所属的中奖区间,则结束当前的查找流程;
否则,根据比对结果确定随机数所属的子序列,子序列为由所述当前查找序列之中由位于所述比对中奖区间之前或之后的中奖区间组成的序列,然后将随机数所属的子序列作为新的当前查找序列,并循环执行步骤二,直到步骤二的执行次数达到预设值之后,停止循环执行步骤二并跳转到步骤三;
步骤三,遍历由步骤二得到的最新的当前查找序列,以在最新的当前查找序列的各中奖区间中逐一查找所述随机数所属的中奖区间,
若查找到随机数所属的中奖区间,则结束当前的查找流程;
否则,输出异常报警消息。
中奖区间查找单元具体可包括判断子单元,用于:
如果随机数大于或等于比对中奖区间的起始值且小于比对中奖区间的截止值,则判定比对中奖区间为随机数所属的中奖区间;
如果随机数等于比对中奖区间的截止值,则判定当前查找序列中位于比对中奖区间的后一位置的中奖区间为随机数所属的中奖区间;
如果随机数小于比对中奖区间的起始值或大于比对中奖区间的截止值,则判定未查找到随机数所属的中奖区间;
中奖区间查找单元还可以包括确定子单元,用于:
如果随机数小于比对中奖区间的起始值,则确定随机数所属的子序列为由当前查找序列之中由位于比对中奖区间之前的中奖区间组成的序列;
如果随机数大于比对中奖区间的截止值,则确定随机数所属的子序列为由当前查找序列之中由位于比对中奖区间之后的中奖区间组成的序列。
中奖区间查找单元还可以包括查找子单元,用于:
逐一将随机数与最新的当前查找序列中的每个中奖区间的起始值和截止值进行比对,以在最新的当前查找序列的各中奖区间中逐一查找随机数所属的中奖区间,其中,
如果查找到一满足如下条件的中奖区间:随机数大于或等于该中奖区间的起始值且小于该中奖区间的截止值,则该中奖区间为随机数所属的中奖区间。
输出模块303用于输出随机数所属的中奖区间对应的奖品信息。
本发明实施例的实现网络抽奖的装置300还可包括配置模块,用于:配置抽奖基数和各类型奖品的抽中概率,以使得至少满足如下条件:抽奖基数为10的倍数;
各类型奖品的概率指示值为整数;
各类型奖品的概率指示值之和为抽奖基数。
另外,在本发明实施例中实现网络抽奖的装置300的具体实施内容,在上面所述实现网络抽奖的方法中已经详细说明了,故在此重复内容不再说明。
图4示出了可以应用本发明实施例的实现网络抽奖的方法或实现网络抽奖的装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的抽奖请求等数据进行处理,并将处理结果(例如抽中的奖品的信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的实现网络抽奖的方法可由服务器405或终端设备401、402、403中的一台或几台执行,相应地,实现网络抽奖的装置可以设置于服务器405或终端设备401、402、403中的一台或几台中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统500的结构示意图。图5示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括设置模块301、查找模块302、输出模块303。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,设置模块301还可以被描述为“用于根据为各类型奖品配置的抽中概率设置各类型奖品对应的中奖区间的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据为各类型奖品配置的抽中概率设置各类型奖品对应的中奖区间;接收用户的抽奖请求并生成与所述抽奖请求关联的随机数,然后查找所述随机数所属的中奖区间;输出所述随机数所属的中奖区间对应的奖品信息。
根据本发明实施例的技术方案,根据为各类型奖品配置的抽中概率设置各类型奖品对应的中奖区间;生成与用户的抽奖请求关联的随机数,并查找所述随机数所属的中奖区间;输出所述随机数所属的中奖区间对应的奖品信息。在高并发、奖品量大的情况下,能够方便运营人员较精确地预估抽奖活动的成本,并实现高效快速及时地计算出当前抽奖用户的中奖奖品,此外,运营人员可以简单便捷地配置抽中概率,抽中概率直观。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种抽取对象的方法,其特征在于,包括:
根据为各对象配置的抽中概率设置各对象对应的数值区间;
生成随机数,并查找所述随机数所属的数值区间;
输出所述随机数所属的数值区间对应的对象的信息。
2.根据权利要求1所述的方法,其特征在于,根据为各对象配置的抽中概率设置各对象对应的数值区间的步骤,包括:
按照为各对象配置的抽中概率对各对象排序得到一个对象序列,根据为各对象配置的抽中概率设置各对象对应的数值区间的起始值和截止值,其中:
将抽中概率最小的一个对象对应的数值区间的起始值和截止值分别设置为零和该对象的概率指示值;
将所述对象序列的除所述抽中概率最小的一个对象之外的剩余对象中,每对象对应的数值区间的起始值设置为排列在该对象的前一位置的一个对象对应的数值区间的截止值,并且将该对象对应的数值区间的截止值设置为该对象对应的数值区间的起始值与该对象的概率指示值的加和;
其中,一对象的概率指示值为该对象的抽中概率与抽取基数的乘积。
3.根据权利要求2所述的方法,其特征在于,查找所述随机数所属的数值区间的步骤,包括:
步骤一,将数值区间序列作为当前查找序列,所述数值区间序列为由所述对象序列中各对象对应的数值区间组成的序列;
步骤二,将位于所述当前查找序列的中间位置的数值区间作为比对数值区间,并将所述随机数与所述比对数值区间的起始值和截止值进行比对,根据比对结果判断是否查找到所述随机数所属的数值区间,
若查找到所述随机数所属的数值区间,则结束当前的查找流程;
否则,根据所述比对结果确定所述随机数所属的子序列,所述子序列为由所述当前查找序列中由位于所述比对数值区间之前或之后的数值区间组成的序列,然后将所述随机数所属的子序列作为新的当前查找序列,并循环执行步骤二,直到所述步骤二的执行次数达到预设值之后,停止循环执行步骤二并跳转到步骤三;
步骤三,遍历由所述步骤二得到的最新的当前查找序列,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间;
若查找到所述随机数所属的数值区间,则结束当前的查找流程;
否则,输出异常报警消息。
4.根据权利要求3所述的方法,其特征在于,根据比对结果判断是否查找到所述随机数所属的数值区间的步骤,包括:
如果所述随机数大于或等于所述比对数值区间的起始值且小于所述比对数值区间的截止值,则判定所述比对数值区间为所述随机数所属的数值区间;
如果所述随机数等于所述比对数值区间的截止值,则判定所述当前查找序列中位于所述比对数值区间的后一位置的数值区间为所述随机数所属的数值区间;
如果所述随机数小于所述比对数值区间的起始值或大于所述比对数值区间的截止值,则判定未查找到所述随机数所属的数值区间;
根据所述比对结果确定所述随机数所属的子序列的步骤,包括:
如果所述随机数小于所述比对数值区间的起始值,则确定所述随机数所属的子序列为由所述当前查找序列之中由位于所述比对数值区间之前的数值区间组成的序列;
如果所述随机数大于所述比对数值区间的截止值,则确定所述随机数所属的子序列为由所述当前查找序列之中由位于所述比对数值区间之后的数值区间组成的序列。
5.根据权利要求3所述的方法,其特征在于,遍历由所述步骤二得到的最新的当前查找序列,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间的步骤,包括:
逐一将所述随机数与所述最新的当前查找序列中的每个数值区间的起始值和截止值进行比对,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间,其中,
如果查找到一满足如下条件的数值区间:所述随机数大于或等于该数值区间的起始值且小于该数值区间的截止值,则该数值区间为所述随机数所属的数值区间。
6.根据权利要求2所述的方法,其特征在于,根据为各对象配置的抽中概率设置各对象对应的数值区间的步骤之前,包括:
配置抽取基数和各对象的抽中概率,以使得至少满足如下条件:
所述抽取基数为10的倍数;
所述各对象的概率指示值为整数;
所述各对象的概率指示值之和为所述抽取基数。
7.一种抽取对象的装置,其特征在于,包括:
设置模块,用于根据为各对象配置的抽中概率设置各对象对应的数值区间;
查找模块,用于生成随机数,并查找所述随机数所属的数值区间;
输出模块,用于输出所述随机数所属的数值区间对应的对象的信息。
8.根据权利要求7所述的装置,其特征在于,设置模块还用于:
按照为各对象配置的抽中概率对各对象排序得到一个对象序列,根据为各对象配置的抽中概率设置各对象对应的数值区间的起始值和截止值,其中:
将抽中概率最小的一个对象对应的数值区间的起始值和截止值分别设置为零和该对象的概率指示值;
将所述对象序列的除所述抽中概率最小的一个对象之外的剩余对象中,每对象对应的数值区间的起始值设置为排列在该对象的前一位置的一个对象对应的数值区间的截止值,并且将该对象对应的数值区间的截止值设置为该对象对应的数值区间的起始值与该对象的概率指示值的加和;
其中,一对象的概率指示值为该对象的抽中概率与抽取基数的乘积。
9.根据权利要求8所述的装置,其特征在于,所述查找模块包括数值区间查找单元,用于执行如下步骤:
步骤一,将数值区间序列作为当前查找序列,所述数值区间序列为由所述对象序列中各对象对应的数值区间组成的序列;
步骤二,将位于所述当前查找序列的中间位置的数值区间作为比对数值区间,并将所述随机数与所述比对数值区间的起始值和截止值进行比对,根据比对结果判断是否查找到所述随机数所属的数值区间,
若查找到所述随机数所属的数值区间,则结束当前的查找流程;
否则,根据所述比对结果确定所述随机数所属的子序列,所述子序列为由所述当前查找序列中由位于所述比对数值区间之前或之后的数值区间组成的序列,然后将所述随机数所属的子序列作为新的当前查找序列,并循环执行步骤二,直到所述步骤二的执行次数达到预设值之后,停止循环执行步骤二并跳转到步骤三;
步骤三,遍历由所述步骤二得到的最新的当前查找序列,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间,
若查找到所述随机数所属的数值区间,则结束当前的查找流程;
否则,输出异常报警消息。
10.根据权利要求9所述的装置,其特征在于,所述数值区间查找单元包括判断子单元,用于:
如果所述随机数大于或等于所述比对数值区间的起始值且小于所述比对数值区间的截止值,则判定所述比对数值区间为所述随机数所属的数值区间;
如果所述随机数等于所述比对数值区间的截止值,则判定所述当前查找序列中位于所述比对数值区间的后一位置的数值区间为所述随机数所属的数值区间;
如果所述随机数小于所述比对数值区间的起始值或大于所述比对数值区间的截止值,则判定未查找到所述随机数所属的数值区间;
所述数值区间查找单元还包括确定子单元,用于:
如果所述随机数小于所述比对数值区间的起始值,则确定所述随机数所属的子序列为由所述当前查找序列之中由位于所述比对数值区间之前的数值区间组成的序列;
如果所述随机数大于所述比对数值区间的截止值,则确定所述随机数所属的子序列为由所述当前查找序列之中由位于所述比对数值区间之后的数值区间组成的序列。
11.根据权利要求9所述的装置,其特征在于,所述数值区间查找单元包括查找子单元,用于:
逐一将所述随机数与所述最新的当前查找序列中的每个数值区间的起始值和截止值进行比对,以在所述最新的当前查找序列的各数值区间中逐一查找所述随机数所属的数值区间,其中,
如果查找到一满足如下条件的数值区间:所述随机数大于或等于该数值区间的起始值且小于该数值区间的截止值,则该数值区间为所述随机数所属的数值区间。
12.根据权利要求8所述的装置,其特征在于,还包括配置模块,用于:
配置抽取基数和各对象的抽中概率,以使得至少满足如下条件:
所述抽取基数为10的倍数;
所述各对象的概率指示值为整数;
所述各对象的概率指示值之和为所述抽取基数。
13.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711338207.XA CN109960487A (zh) | 2017-12-14 | 2017-12-14 | 一种抽取对象的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711338207.XA CN109960487A (zh) | 2017-12-14 | 2017-12-14 | 一种抽取对象的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109960487A true CN109960487A (zh) | 2019-07-02 |
Family
ID=67017954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711338207.XA Pending CN109960487A (zh) | 2017-12-14 | 2017-12-14 | 一种抽取对象的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109960487A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157743A (zh) * | 2021-04-28 | 2021-07-23 | 中国工商银行股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113426136A (zh) * | 2021-07-06 | 2021-09-24 | 网易(杭州)网络有限公司 | 异常告警方法、装置、计算机设备及存储介质 |
CN114267113A (zh) * | 2021-12-24 | 2022-04-01 | 中国建设银行股份有限公司 | 一种抽奖方法及装置 |
CN115206019A (zh) * | 2022-06-20 | 2022-10-18 | 广东航天信息爱信诺科技有限公司 | 概率事件中选取目标对象的方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934908A (zh) * | 2017-03-17 | 2017-07-07 | 福建中金在线信息科技有限公司 | 一种抽奖方法和装置 |
-
2017
- 2017-12-14 CN CN201711338207.XA patent/CN109960487A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934908A (zh) * | 2017-03-17 | 2017-07-07 | 福建中金在线信息科技有限公司 | 一种抽奖方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157743A (zh) * | 2021-04-28 | 2021-07-23 | 中国工商银行股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113426136A (zh) * | 2021-07-06 | 2021-09-24 | 网易(杭州)网络有限公司 | 异常告警方法、装置、计算机设备及存储介质 |
CN113426136B (zh) * | 2021-07-06 | 2024-04-09 | 网易(杭州)网络有限公司 | 异常告警方法、装置、计算机设备及存储介质 |
CN114267113A (zh) * | 2021-12-24 | 2022-04-01 | 中国建设银行股份有限公司 | 一种抽奖方法及装置 |
CN115206019A (zh) * | 2022-06-20 | 2022-10-18 | 广东航天信息爱信诺科技有限公司 | 概率事件中选取目标对象的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960487A (zh) | 一种抽取对象的方法和装置 | |
CN104239324B (zh) | 一种基于用户行为的特征提取、个性化推荐的方法和系统 | |
CN110363456A (zh) | 一种物品上架的方法和装置 | |
CN110110543A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN109697641A (zh) | 计算商品相似度的方法和装置 | |
CN108805565B (zh) | 基于区块链的承诺存在性证明方法、设备及可读存储介质 | |
CN109614402A (zh) | 多维数据查询方法和装置 | |
CN106251168A (zh) | 信息推送方法及系统 | |
CN109901987A (zh) | 一种生成测试数据的方法和装置 | |
WO2014152352A1 (en) | Similarity engine for facilitating re-creation of an application collection of a source computing device on a destination computing device | |
CN107766106B (zh) | 生成配置文件的方法和装置 | |
CN107480205A (zh) | 一种进行数据分区的方法和装置 | |
CN109933514A (zh) | 一种数据测试方法和装置 | |
CN108776692A (zh) | 用于处理信息的方法和装置 | |
CN106547870A (zh) | 数据库的分表方法及装置 | |
CN108197298A (zh) | 一种基于自然语言处理的智能购物交互方法及系统 | |
CN109002385A (zh) | 用于数据流系统的压力测试方法和装置 | |
CN109960639A (zh) | 一种生成测试用例的方法和装置 | |
CN108154024A (zh) | 一种数据检索方法、装置及电子设备 | |
CN110874365B (zh) | 一种信息查询方法及其相关设备 | |
KR20140031429A (ko) | 아이템 추천 시스템과 방법 및 이를 지원하는 장치 | |
CN109754273A (zh) | 提升活跃用户数量的方法和装置 | |
CN109977982A (zh) | 用户分类方法、系统、电子设备及计算机可读介质 | |
CN110215703B (zh) | 游戏应用的选择方法、装置及系统 | |
CN108364186A (zh) | 需求信息的处理方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190702 |