CN109542395A - 抽奖信息确定方法、装置、设备以及存储介质 - Google Patents
抽奖信息确定方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN109542395A CN109542395A CN201811406292.3A CN201811406292A CN109542395A CN 109542395 A CN109542395 A CN 109542395A CN 201811406292 A CN201811406292 A CN 201811406292A CN 109542395 A CN109542395 A CN 109542395A
- Authority
- CN
- China
- Prior art keywords
- prize
- list
- target
- random number
- information
- 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
- 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
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种抽奖信息确定方法、装置、设备以及存储介质。该方法包括:获取用户的抽奖请求,基于抽奖请求产生随机数;将随机数加入到奖品的概率列表,得到目标概率列表,并对目标概率列表中的数据按照从小到大的顺序进行重新排序;获取随机数对应的列表索引,作为目标列表索引;目标列表索引为随机数在目标概率列表中的序号;确定与目标列表索引对应的目标奖品ID,并确定目标奖品ID对应的目标奖品信息;对目标奖品信息进行校验,得到校验结果,并根据校验结果得到抽奖信息。本发明实施例提供的技术方案,提高了抽奖效率。
Description
技术领域
本发明实施例涉及移动互联网技术,尤其涉及一种抽奖信息确定方法、装置、设备以及存储介质。
背景技术
抽奖作为常见的业务需求,是各类活动中不可或缺的部分。根据业务需求的不同,所需要的抽奖算法也有所不同。基于随机数的概率抽奖算法是目前常见的抽奖算法。
现有的基于随机数的抽奖算法,通过将生成的随机数落在某个抽奖区间内,获取该概率区间的奖励作为用户所中的奖励。该算法实际是通过将随机数与概率区间进行比对,确定对应的抽奖区间,进而用户确定抽中的奖励。但是,通过将随机数与概率区间进行比对的方式确定抽奖结果会导致的抽奖速度比较慢,抽奖效率不高。
发明内容
本发明提供一种抽奖信息确定方法、装置、设备以及存储介质,可以提高抽奖效率。
第一方面,本发明实施例提供了一种抽奖信息确定方法,该方法包括:
获取用户的抽奖请求,基于所述抽奖请求产生随机数;
将所述随机数加入到奖品的概率列表,得到目标概率列表,并对所述目标概率列表中的数据按照从小到大的顺序进行重新排序;
获取所述随机数对应的列表索引,作为目标列表索引;所述目标列表索引为随机数在所述目标概率列表中的序号;
确定与所述目标列表索引对应的目标奖品ID,并确定所述目标奖品ID对应的目标奖品信息;
对所述目标奖品信息进行校验,得到校验结果,并根据所述校验结果得到抽奖信息。
第二方面,本发明实施例还提供了一种抽奖信息确定装置,该装置包括:
随机数产生模块,用于获取用户的抽奖请求,基于所述抽奖请求产生随机数;
概率排序模块,用于将所述随机数加入到奖品的概率列表,得到目标概率列表,并对所述目标概率列表中的数据按照从小到大的顺序进行重新排序;
列表索引获取模块,用于获取所述随机数对应的列表索引,作为目标列表索引;所述目标列表索引为随机数在所述目标概率列表中的序号;
奖品信息获取模块,用于确定与所述目标列表索引对应的目标奖品ID,并确定所述目标奖品ID对应的目标奖品信息;
校验模块,用于对所述目标奖品信息进行校验,得到校验结果,并根据所述校验结果得到抽奖信息。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的抽奖信息确定方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任意实施例所述的抽奖信息确定方法。
本发明实施例提供的一种抽奖信息确定方法,通过将抽奖产生的随机数加入概率列表并进行重新排序,得到随机数对应的列表索引,进而得到所中奖品的信息,根据奖品信息的校验结果得到抽奖信息,解决了现有的基于随机数抽奖算法将随机数与概率区间进行比对确定抽奖结果,抽奖效率不高的问题,提高了抽奖效率。
附图说明
图1是本发明实施例一提供的一种抽奖信息确定方法的流程图;
图2是本发明实施例二提供的一种抽奖信息确定方法的流程图;
图3是本发明实施例三提供的一种抽奖信息确定方法的流程图;
图4是本发明实施例四提供的一种抽奖信息确定装置的结构示意图;
图5是本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种抽奖信息确定方法的流程图,本实施例可适用于提高抽奖效率的情况,该方法可以由抽奖信息确定装置来执行,该装置可以由软件和/或硬件的方式实现,并一般可以集成在各种提供抽奖活动的终端或者服务器中。具体的,参考图1,该方法可以包括如下步骤:
步骤101、获取用户的抽奖请求,基于抽奖请求产生随机数。
具体的,用户点击抽奖平台展示的抽奖按钮开始抽奖时,抽奖平台会判断用户是否已经登录账户,若用户没有登录,则提示用户输入账户ID和登录密码,登录抽奖平台的账户;若用户已经登录,则获取用户的抽奖请求并发送给服务端,服务端基于抽奖请求产生一个随机数,根据该随机数进行抽奖。
可选的,当用户没有登录抽奖平台的账户时,抽奖平台提示用户输入账户ID和登录密码,登录抽奖平台的账户,可以包括:若用户已经注册一个账户,则根据已经注册的账户ID和登录密码进行账户登录;若用户没有注册过账户,则提示用户注册一个新的账户,并设置登录密码,采用新的账户ID和登录密码登录抽奖平台,开始抽奖。
可选的,服务端根据用户的抽奖请求,在0到1之间产生一个随机数参与抽奖活动。
步骤102、将随机数加入到奖品的概率列表,得到目标概率列表,并对目标概率列表中的数据按照从小到大的顺序进行重新排序。
本发明实施例中,概率列表的设置具体可以包括:对每一种奖品设置一个对应的抽奖概率,并对所有的抽奖概率进行升序排序,将每个抽奖概率与在每个抽奖概率之前的抽奖概率进行求和,生成当前抽奖概率对应的排序概率;将所有排序概率存储到概率数组中,得到概率列表。其中,奖品的抽奖概率可以表示为该种奖品的总数量与所有种类奖品的总数量的比值。可选的,概率列表也可以由排序后的抽奖概率组成。
例如,将奖品1的抽奖概率设置为0.2,奖品2的抽奖概率设置为0.1,奖品3的抽奖概率设置为0.3,奖品4的抽奖概率设置为0.4;对所有的抽奖概率进行升序排序,得到0.1、0.2、0.3、0.4;将每个抽奖概率与在每个抽奖概率之前的抽奖概率进行求和,生成当前抽奖概率对应的排序概率,因为抽奖概率0.1之前没有其他抽奖概率,所以其对应的排序概率为0.1与0的求和0.1,抽奖概率0.2的前面有抽奖概率0.1,因此其对应的排序概率为0.2与0.1的求和0.3,同理得到抽奖概率0.3、0.4对应的排序概率;最后将所有排序概率依次存储到概率数组中,即得到概率列表0.1、0.3、0.6、1。
由于所有奖品的抽奖概率之和为1,因此,概率列表中的最后一个数据值为1,即概率列表中最大的排序概率值为1。相应的,将抽奖随机数的范围设置为0到1之间,可以保证每次抽奖能获取到对应的奖品信息。
可选的,服务端为概率列表中的每个排序概率配置一个奖品ID与之对应,每个奖品ID关联一种奖品。将所有的奖品ID按照概率列表中排序概率的顺序一一对应的存储在一个数组中,在抽奖期间该奖品ID数组保持不变。
例如,概率列表中的排序概率0.1对应奖品ID2,排序概率0.3对应奖品ID1、排序概率0.6对应奖品ID3,排序概率1对应奖品ID4,将ID1、ID2、ID3、ID4按照概率列表中排序概率的顺序一一对应的存储在一个数组中,得到奖品ID数组ID2、ID1、ID3、ID4,且抽奖期间该奖品ID数组保持不变。
具体的,将生成的抽奖随机数加入到奖品的概率列表中,并将当前的概率列表称为目标概率列表,为了获取到与随机数相对应的奖品ID,对目标概率列表中的数据按照从小到大的顺序进行重新排序,获得随机数在当前目标概率列表中的位置。
例如,概率列表设置为0.1、0.3、0.6、1,且概率列表的列表索引按照从小到大的顺序分别与奖品ID数组的数组索引相对应;服务端生成的随机数为0.5,将随机数0.5加入到概率列表中,得到目标概率列表0.5、0.1、0.3、0.6、1,对目标概率列表中的数据按照从小到大的顺序进行重新排序,得到当前概率列表0.1、0.3、0.5、0.6、1,进而得到随机数0.5在当前概率列表中的位置为第3位。
可选的,对目标概率列表中的数据进行排序,可以采用二分插入排序算法、选择排序算法、希尔排序算法、归并排序算法和堆排序算法等等。本发明实施例中,通过将随机数加入概率列表得到目标概率列表,并采用排序算法对目标概率列表中的数据进行排序,可以快速找到随机数所对应的奖品ID,从而确定抽奖结果。解决了现有算法中,通过将随机数与概率区间进行比对来确定抽奖结果,导致的抽奖速度较慢的问题,提高了抽奖的速度,进而提高了抽奖的效率。
步骤103、获取随机数对应的列表索引,作为目标列表索引;目标列表索引为随机数在目标概率列表中的序号。
具体的,找到随机数在目标概率列表中的位置之后,获取随机数对应的列表索引,并作为目标列表索引,由于目标概率列表中的数据所对应的列表索引与奖品ID数组中的奖品ID所对应的数组索引有对应关系,因此,通过随机数所对应的目标列表索引能够很快找到随机数所对应的目标奖品ID。其中,目标列表索引为随机数在目标概率列表中的序号。
本发明实施例中,在对目标概率列表的排序操作完成之后,随机数在当前目标概率列表中的位置也得到确定,例如,随机数在当前目标概率列表中的第3位,则说明随机数在当前目标概率列表中的序号为3,即随机数所对应的目标列表索引为3。
步骤104、确定与所述目标列表索引对应的目标奖品ID,并确定所述目标奖品ID对应的目标奖品信息。
具体的,得到随机数在目标概率列表中所对应的目标列表索引之后,获取奖品ID数组中数组索引等于目标列表索引的数组元素所对应的目标奖品ID,作为本次抽奖所中奖品的奖品ID,根据目标奖品ID与对应奖品的关联关系,获得该奖品ID对应的目标奖品信息。
本发明实施例中,目标概率列表由于在概率列表的基础上加入了随机数,其所包含的数据数量比奖品ID数组中的数组元素数量多1,因此,目标概率列表的列表索引数量相应的比奖品ID数组中的数组索引数量多1。但是,因为随机数的取值范围是0到1之间的一个小于1的数,而目标概率列表中的最大值等于1,因此,随机数所对应的目标列表索引必定在奖品ID数组中能够找到,即得到与目标列表索引对应的目标奖品ID。
步骤105、对目标奖品信息进行校验,得到校验结果,并根据校验结果得到抽奖信息。
具体的,在得到所中奖品对应的目标奖品信息之后,为了检验该中奖结果是否有效,即检验该奖品能不能给用户发放,需要对目标奖品信息进行校验,即判断目标奖品已抽中的总数量是否小于目标奖品的数量上限;若是,则判断用户抽中奖品的数量是否小于每人获取奖品的上限;若是,则判断奖品今日抽中的数量是否小于每日获取奖品的上限;若是,则判断目标奖品所属分组的中奖总数是否小于每组获取奖品的上限,从而获得校验结果。校验结果可以是通过或不通过,当上述所有的校验条件都满足时,校验结果为通过,说明中奖结果有效,服务端产生抽奖信息;当上述有任一校验条件不满足时,校验结果为不通过,说明中奖结果无效,服务端重新生成一个随机数,再次进行抽奖。
可选的,服务端根据奖品信息预先设置了多个校验项,从维护抽奖的整体规则、均衡所有抽奖用户的利益以及保证抽奖的公平性等多个角度对目标奖品信息进行校验,得到最终的校验结果。其中,服务端可以根据业务需要,从预先设置的校验项中选择部分校验项对目标奖品信息进行校验,从而增加了对目标奖品信息进行校验的灵活性。
本实施例的技术方案,通过将抽奖产生的随机数加入概率列表并进行重新排序,得到随机数对应的列表索引,进一步得到所中奖品的信息,根据奖品信息的校验结果得到抽奖信息,解决了现有的基于随机数抽奖的方法抽奖速度慢、灵活性不高的问题,提高了抽奖速度和抽奖的灵活性。
实施例二
图2为本发明实施例二提供的一种抽奖信息确定方法的流程图,本实施例可以与上述一个或者多个实施例中各个可选方案结合。具体的,参考图2,该方法可以包括如下步骤:
步骤201、对奖品信息以及概率列表进行设置。
本发明实施例中,在抽奖开始之前,服务端可以根据抽奖活动的业务需求预先设置奖品信息以及对应的概率列表。具体的,预先设置的奖品信息可以包括:奖品名称、奖品类型、奖品等级、奖品分组、用户获得奖品的数量、奖品总数、奖品数量上限、每人获取奖品的上限、每日获取奖品的上限、每组获取奖品的上限和奖品发放状态。
可选的,奖品类型是针对不同奖品的发放方式不同而设计的,用于区分不同发放类型的奖品,例如,奖品类型可以设置为实物奖品和虚拟奖品。奖品等级是针对同一抽奖活动中存在多种类型的奖励池而设计的,例如,可以设置为属于同一奖品等级的奖品抽奖概率之和为1或者0,抽奖概率之和为1的奖品等级表示属于该等级的奖品需要通过抽奖才能获得,抽奖概率之和为0的奖品等级表示属于该等级的奖品不需要通过抽奖就可以直接获得。奖品分组是针对奖品的价值不同而设计的,例如,将奖品分组设置为高价值组和低价值组,由于高价值组的奖品数量较少但又更受用户的青睐,因此,为了保证单个用户不过多获取高价值奖品,属于同一奖品分组的奖品会进行该组获取奖品上限的校验,或者每人获取该组奖品上限的校验,使得更多的用户能获得高价值奖品。
可选的,奖品数量上限可以表示抽奖过程中所有奖品的总数量;每人获取奖品的上限可以表示每个用户在抽奖过程中所能获得奖品的最大数量;每日获取奖品的上限可以表示在抽奖期间每日发放奖品的最大数量、每组获取奖品的上限可以表示在抽奖期间每组发放奖品的最大数量;奖品发放状态是为了保证抽奖的严谨性,避免后台的奖品配置人员进行违规操作而设置的,可以将奖品发放状态设置为未发布状态、已审核状态以及已发布状态,当确认用户获奖,获得抽奖信息后,发放状态即变为未发布状态,经过审核人员的核实将发放状态变为已审核状态,当用户所中的奖品信息对外显示之后,将发放状态变为已发布状态。其中,每一种状态的变更,都需要保证的不同工作人员对奖品信息进行审核,保证了奖品信息的正确性。
具体的,对概率列表进行设置可以包括:对每一种奖品设置一个对应的抽奖概率,并对所有的抽奖概率进行升序排序,将每个抽奖概率与在每个抽奖概率之前的抽奖概率进行求和,生成排序概率;将所有排序概率存储到概率数组中,得到概率列表。
具体的,可以对奖品的抽奖概率进行实时修改,奖品总数、奖品数量上限、每人获取奖品的上限、每日获取奖品的上限和每组获取奖品的上限都可以实时增加,实现动态补仓。
当接收到抽奖概率、奖品总数、奖品数量上限、每人获取奖品的上限、每日获取奖品的上限和每组获取奖品的上限的更新信息时,服务端将对应的信息更改为更新信息中规定的数值。
本发明实施例中,服务端可以根据业务需求,对概率列表以及与概率列表中的列表索引对应的奖品信息进行实时更新,提高对抽奖活动进行设置的灵活性,避免了对每个抽奖活动的抽奖逻辑进行重复开发,减少开发人员的开发抽奖逻辑的工作量,提高方法的可扩展性。
步骤202、获取用户的抽奖请求,并判断是否在规定抽奖时间,若是,则执行步骤203;否则,执行步骤209。
具体的,由于抽奖活动有预先设置的时间周期,因此,在获取到用户的抽奖请求后,需要先判断当前时刻是否在规定的抽奖时间内,如果在抽奖的有效时限内,则执行步骤203,继续进行抽奖活动,如果当前时刻不在抽奖的有效期限内,则执行步骤209,结束此次抽奖。其中,抽奖活动的预设周期可以是1天、2天、3天甚至是更长的时间期限,服务端可以根据业务需求进行合理的设置。
可选的,可以将抽奖活动的时间周期设置为3天,即从抽奖开始之时起的72小时内,用户皆可参与抽奖活动,在72小时之后则视为抽奖活动结束,不能参与抽奖。
步骤203、产生一个随机数,并根据随机数获取目标奖品ID以及对应的目标奖品信息。
具体的,在确定当前抽奖时刻在规定的抽奖时间内时,服务端根据抽奖请求产生一个随机数,利用该随机数得到本轮抽奖所中的奖品信息。本发明实施例中,获得随机数之后,先判断该用户本轮抽奖的抽奖次数是否大于预设的抽奖次数,若是,则从设定奖品池中随机获取一个奖品ID,并得到与随机获取的该奖品ID对应的抽奖信息;若否,则根据随机数获取目标奖品ID以及对应的目标奖品信息。
具体的,根据随机数获取目标奖品ID以及对应的目标奖品信息,可以包括:将随机数加入到奖品的概率列表中,得到目标概率列表,对目标概率列表中的数据按照从小到大的顺序进行重新排序,获得随机数在当前目标概率列表中的位置,从而获取随机数对应的列表索引,并作为目标列表索引,获取奖品ID数组中数组索引等于目标列表索引的数组元素所对应的目标奖品ID,根据目标奖品ID与对应奖品的关联关系,获得该奖品ID对应的目标奖品信息。
步骤204、判断目标奖品已抽中的总数量是否小于目标奖品的数量上限,若是,执行步骤205,否则,返回执行步骤203。
具体的,得到所中奖品对应的目标奖品信息之后,需要对目标奖品信息进行选择性的校验,以确定该奖品能不能给用户发放。本发明实施例中,可以判断目标奖品的数量上限是否小于0,若是,则说明不需要对目标奖品信息进行目标奖品的数量上限的校验,直接执行步骤205;若否,则需要对目标奖品信息进行目标奖品的数量上限的校验,即需要判断目标奖品已抽中的总数量是否小于目标奖品的数量上限。
具体的,若目标奖品已抽中的总数量小于目标奖品的数量上限,则表示还有目标奖品未发放,对目标奖品信息进行的目标奖品的数量上限的校验通过,可以执行步骤205;若目标奖品已抽中的总数量大于或等于目标奖品的数量上限,则表示目标奖品全部发放完毕,没有目标奖品可以给用户发放,即对目标奖品信息进行的目标奖品的数量上限的校验不通过,返回执行步骤203。
本发明实施例中,通过对目标奖品信息进行目标奖品的数量上限的校验,可以限制目标奖品的发放数量,保证发布中奖信息后,能够有对应的奖品发放,避免宣布用户的中奖信息后,没有对应奖品发放给用户的情况。
步骤205、判断用户抽中奖品的数量是否小于每人获取奖品的上限,若是,执行步骤206,否则,返回执行步骤203。
具体的,判断用户抽中奖品的数量是否小于每人获取奖品的上限,可以包括:首先判断每人获取奖品的上限是否小于0,若是,则说明不需要对目标奖品信息进行每人获取奖品的上限的校验,直接执行步骤206;若否,则需要对目标奖品信息进行每人获取奖品的上限的校验,即需要判断用户抽中奖品的数量是否小于每人获取奖品的上限。
具体的,若用户抽中奖品的数量小于每人获取奖品的上限,则表示还可以向该用户发放奖品,即对目标奖品信息进行的每人获取奖品的上限的校验通过,可以执行步骤206;若用户抽中奖品的数量大于或等于每人获取奖品的上限,则表示该用户已经获取到多次奖品,不能再给用户发放奖品,即对目标奖品信息进行的每人获取奖品的上限的校验不通过,返回执行步骤203。
本发明实施例中,通过对目标奖品信息进行每人获取奖品的上限的校验,可以限制向每个用户发放奖品的数量,避免同一个用户得到过多的奖品,从而使其他用户得不到奖品,有利于均衡所有用户的利益,实现抽奖的公平性。
步骤206、判断奖品今日抽中的数量是否小于每日获取奖品的上限,若是,执行步骤207,否则,返回执行步骤203。
具体的,判断奖品今日抽中的数量是否小于每日获取奖品的上限,可以包括:首先判断每日获取奖品的上限是否小于0,若是,则说明不需要对目标奖品信息进行每日获取奖品的上限的校验,直接执行步骤207;若否,则需要对目标奖品信息进行每日获取奖品的上限的校验,即需要判断奖品今日抽中的数量是否小于每日获取奖品的上限。
具体的,若奖品今日抽中的数量小于每日获取奖品的上限,则表示今日发放的奖品数量还没有达到规定的数量,还可以向用户发放奖品,即对目标奖品信息进行的每日获取奖品的上限的校验通过,可以执行步骤207;若奖品今日抽中的数量大于或等于每日获取奖品的上限,则表示今日发放的奖品数量已经达到了规定数量,不能再给用户发放奖品,即对目标奖品信息进行的每日获取奖品的上限的校验不通过,返回执行步骤203。
本发明实施例中,通过目标奖品信息进行的每日获取奖品的上限的校验,可以限制每日的奖品发放数量,从而确保抽奖活动能够持续规定的时间周期,避免活动还未结束,奖品已经发放完毕的情况发生。
步骤207、判断目标奖品所属分组的中奖总数是否小于每组获取奖品的上限,若是,执行步骤208,否则,返回执行步骤203。
具体的,判断目标奖品所属分组的中奖总数是否小于每组获取奖品的上限,可以包括:首先判断每组获取奖品的上限是否小于0,若是,则说明不需要对目标奖品信息进行每组获取奖品的上限的校验,直接执行步骤208;若否,则需要对目标奖品信息进行每组获取奖品的上限的校验,即需要判断目标奖品所属分组的中奖总数是否小于每组获取奖品的上限。
具体的,若目标奖品所属分组的中奖总数小于每组获取奖品的上限,则表示发放的该组奖品数量还没有达到规定的数量,还可以向用户发放该组的奖品,即对目标奖品信息进行的每组获取奖品的上限的校验通过,可以执行步骤208;若目标奖品所属分组的中奖总数大于或等于每组获取奖品的上限,则表示发放的该组奖品数量已经达到规定的数量,不能再给用户发放奖品,即对目标奖品信息进行的每组获取奖品的上限的校验不通过,返回执行步骤203。
本发明实施例中,通过对目标奖品信息进行的每组获取奖品的上限的校验,可限制不同分组的奖品发放数量,从而均衡对高价值奖品和低价值奖品的发放数量,达到较好的抽奖效果。
步骤208、得到抽奖信息。
具体的,当目标奖品信息符合校验条件之后,服务端产生抽奖信息,并进行记录。其中,所述抽奖信息可以包括:用户的账户ID、目标奖品名称以及用户抽中的目标奖品的数量。
步骤209、结束抽奖。
本发明实施例提供的技术方案,通过将抽奖产生的随机数加入概率列表并进行重新排序,得到随机数对应的列表索引,进而得到所中奖品的信息,根据奖品信息的校验结果得到抽奖信息,解决了现有的基于随机数抽奖算法将随机数与概率区间进行比对确定抽奖结果,抽奖效率不高的问题,提高了抽奖效率。
实施例三
图3为本发明实施例三提供的一种抽奖信息确定方法的流程图,本实施例配合后台功能,可以实现无开发者参与的抽奖活动发布。具体的,如图3所示,该方法可以包括如下步骤:
步骤301、后台配置活动以及与活动关联的奖品列表。
其中,奖品列表包括:奖品名称、抽奖概率、奖品类型、奖品等级、奖品分组、用户获得奖品的数量、奖品总数、奖品数量上限、每人获取奖品的上限、每日获取奖品的上限、每组获取奖品的上限和奖品发放状态等信息。
步骤302、发布活动并生成概率列表。
具体的,将活动以及与活动关联的奖品列表配置好以后,发布活动,将每个抽奖概率与在其排序位置之前的所有抽奖概率进行求和,生成排序概率,并对每个排序概率设置相应的奖品ID,缓存排序概率以及对应的奖品ID,得到概率列表,为用户抽奖做好第一步准备。
步骤303、用户在页面上点击抽奖按钮,服务端获取抽奖请求开始抽奖。
步骤304、根据抽奖随机数获得抽中奖品的信息,并对抽中奖品的信息进行选择性校验。
具体的,收到用户的抽奖请求后,服务端随机产生一个随机数,将该随机数加入已准备好的概率列表中,生成新的概率列表,对新的概率列表进行升序排序,并找到随机数所对应的数组索引,根据该数组索引获得对应的奖品ID,根据奖品ID获取抽中的奖品信息,对抽中的奖品信息进行校验。其中,校验条件包括:用户抽中奖品已发放的总数量是否小于该奖品的数量上限,用户抽中奖品的数量是否小于每人获取奖品的上限,今日抽中的奖品数量是否小于每日获取奖品的上限,用户抽中奖品所属分组的中奖总数是否小于每组获取奖品的上限。其中,上述任意校验条件都可以选择性的跳过。
步骤305、根据校验结果选择对应的奖品进行发放。
具体的,上述校验条件都校验通过后,保存中奖记录,进行异步发奖。如果上述校验条件没有校验通过,则重新执行步骤304。为了防止堆栈溢出以及接口响应时间过长,如果执行步骤304 10次之后,仍然没有获取奖品,则从一个不限制的奖品池中,随机获取一个奖品ID,给该用户发奖。
其中,异步发奖是指,根据中奖纪录给用户发奖之前,需要不同的工作人员分别对中奖纪录进行审核,当所有审核的工作人员都审核通过时,才对用户进行奖品发放。
步骤306、将中奖信息返回给前端。
可选的,奖品发放成功后,将中奖信息返回给前端,其中,中奖信息包括:奖品名称、对应的奖品数量以及奖品图片路径。
步骤307、前端页面展示获奖弹框。
可选的,前端接收到中奖信息后,通过前端页面展示获奖弹框,对外公布用户的中奖信息。
本发明实施例提供的技术方案,通过将抽奖产生的随机数加入概率列表并进行重新排序,得到随机数对应的列表索引,进而得到所中奖品的信息,根据奖品信息的校验结果选择对应的奖品进行发放,解决了现有的基于随机数抽奖算法抽奖效率不高的问题,提高了抽奖效率。
实施例四
图4为本发明实施例四提供的一种抽奖信息确定装置的结构示意图,具体的,如图4所示,该装置可以包括:
随机数产生模块401,用于获取用户的抽奖请求,基于抽奖请求产生随机数;
概率排序模块402,用于将随机数加入到奖品的概率列表,得到目标概率列表,并对目标概率列表中的数据按照从小到大的顺序进行重新排序;
列表索引获取模块403,用于获取随机数对应的列表索引,作为目标列表索引;目标列表索引为随机数在所述目标概率列表中的序号;
奖品信息获取模块404,用于确定与目标列表索引对应的目标奖品ID,并确定目标奖品ID对应的目标奖品信息;
校验模块405,用于对目标奖品信息进行校验,得到校验结果,并根据校验结果得到抽奖信息。
本发明实施例提供的技术方案,通过将抽奖产生的随机数加入概率列表并进行重新排序,得到随机数对应的列表索引,进而得到所中奖品的信息,根据奖品信息的校验结果得到抽奖信息,解决了现有的基于随机数抽奖算法将随机数与概率区间进行比对确定抽奖结果,抽奖效率不高的问题,提高了抽奖效率。
进一步的,该装置还包括:设置单元,用于对奖品设置抽奖概率,并对抽奖概率进行升序排序;排序概率生成单元,用于将每个抽奖概率与在每个抽奖概率之前的抽奖概率进行求和,生成排序概率;概率列表生成单元,用于将排序概率存储到数组中,得到概率列表。
进一步的,校验模块405可以包括:判断单元,用于判断目标奖品信息是否符合校验条件;校验成功单元,用于当目标奖品信息符合校验条件时,得到抽奖信息,并进行记录;返回单元,用于当目标奖品信息不符合校验条件时,返回基于抽奖操作产生随机数,直至目标奖品信息符合校验条件。
进一步的,判断单元可以具体用于:判断目标奖品已抽中的总数量是否小于目标奖品的数量上限;若是,则判断用户抽中奖品的数量是否小于每人获取奖品的上限;若是,则判断奖品今日抽中的数量是否小于每日获取奖品的上限;若是,则判断目标奖品所属分组的中奖总数是否小于每组获取奖品的上限。
进一步的,校验模块405还可以用于:若目标奖品信息不符合校验条件,返回基于所述抽奖操作产生随机数的操作;若校验次数达到设定次数,从设定奖励池中随机获取奖品ID,并得到与随机获取的奖品ID对应的抽奖信息。
进一步的,该装置还包括:更新单元,用于对概率列表,以及概率列表中的列表索引对应的奖品信息进行实时更新。
本发明实施例提供的抽奖信息确定装置可适用于上述任意实施例提供的抽奖信息确定方法,具备相应的功能和有益效果。
实施例五
参照图5,图5是本发明实施例五提供的一种设备的结构示意图,如图5所示,该设备包括处理器510、存储器520、输入装置530和输出装置540;设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的抽奖信息确定方法对应的程序指令/模块(例如,抽奖信息确定装置中的随机数产生模块401、概率排序模块402、列表索引获取模块403、奖品信息获取模块404和校验模块405)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的抽奖信息确定方法。
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本发明实施例六提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种抽奖信息确定方法,一种抽奖信息确定方法包括:
获取用户的抽奖请求,基于所述抽奖请求产生随机数;
将所述随机数加入到奖品的概率列表,得到目标概率列表,并对所述目标概率列表中的数据按照从小到大的顺序进行重新排序;
获取所述随机数对应的列表索引,作为目标列表索引;所述目标列表索引为随机数在所述目标概率列表中的序号;
确定与所述目标列表索引对应的目标奖品ID,并确定所述目标奖品ID对应的目标奖品信息;
对所述目标奖品信息进行校验,得到校验结果,并根据所述校验结果得到抽奖信息。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机程序可执行不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的抽奖信息确定方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述抽奖信息确定装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种抽奖信息确定方法,其特征在于,包括:
获取用户的抽奖请求,基于所述抽奖请求产生随机数;
将所述随机数加入到奖品的概率列表,得到目标概率列表,并对所述目标概率列表中的数据按照从小到大的顺序进行重新排序;
获取所述随机数对应的列表索引,作为目标列表索引;所述目标列表索引为随机数在所述目标概率列表中的序号;
确定与所述目标列表索引对应的目标奖品ID,并确定所述目标奖品ID对应的目标奖品信息;
对所述目标奖品信息进行校验,得到校验结果,并根据所述校验结果得到抽奖信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
对奖品设置抽奖概率,并对所述抽奖概率进行升序排序;
将每个所述抽奖概率与在每个所述抽奖概率之前的抽奖概率进行求和,生成排序概率;
将所述排序概率存储到数组中,得到概率列表。
3.根据权利要求1所述的方法,其特征在于,所述对所述目标奖品信息进行校验,得到校验结果,并根据所述校验结果得到抽奖信息,包括:
判断所述目标奖品信息是否符合校验条件;
若是,得到抽奖信息,并进行记录;
若否,返回基于所述抽奖操作产生随机数,直至所述目标奖品信息符合所述校验条件。
4.根据权利要求3所述的方法,其特征在于,所述奖品信息包括:
奖品名称、奖品类型、奖品等级、奖品分组、用户获得奖品的数量、奖品总数、奖品数量上限、每人获取奖品的上限、每日获取奖品的上限、每组获取奖品的上限和奖品发放状态。
5.根据权利要求4所述的方法,其特征在于,所述判断所述目标奖品信息是否符合校验条件,包括:
判断所述目标奖品已抽中的总数量是否小于所述目标奖品的数量上限;
若是,则判断所述用户抽中所述奖品的数量是否小于每人获取奖品的上限;
若是,则判断所述奖品今日抽中的数量是否小于每日获取奖品的上限;
若是,则判断所述目标奖品所属分组的中奖总数是否小于每组获取奖品的上限。
6.根据权利要求1所述的方法,其特征在于,所述对所述目标奖品信息进行校验,得到校验结果,并根据所述校验结果得到抽奖信息,包括:
若所述目标奖品信息不符合校验条件,返回基于所述抽奖操作产生随机数的操作;
若校验次数达到设定次数,从设定奖励池中随机获取奖品ID,并得到与随机获取的所述奖品ID对应的抽奖信息。
7.根据权利要求1所述的方法,其特征在于,还包括:
对所述概率列表,以及所述概率列表中的列表索引对应的奖品信息进行实时更新。
8.一种抽奖信息确定装置,其特征在于,包括:
随机数产生模块,用于获取用户的抽奖请求,基于所述抽奖请求产生随机数;
概率排序模块,用于将所述随机数加入到奖品的概率列表,得到目标概率列表,并对所述目标概率列表中的数据按照从小到大的顺序进行重新排序;
列表索引获取模块,用于获取所述随机数对应的列表索引,作为目标列表索引;所述目标列表索引为随机数在所述目标概率列表中的序号;
奖品信息获取模块,用于确定与所述目标列表索引对应的目标奖品ID,并确定所述目标奖品ID对应的目标奖品信息;
校验模块,用于对所述目标奖品信息进行校验,得到校验结果,并根据所述校验结果得到抽奖信息。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的抽奖信息确定方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的抽奖信息确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811406292.3A CN109542395A (zh) | 2018-11-23 | 2018-11-23 | 抽奖信息确定方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811406292.3A CN109542395A (zh) | 2018-11-23 | 2018-11-23 | 抽奖信息确定方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109542395A true CN109542395A (zh) | 2019-03-29 |
Family
ID=65849383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811406292.3A Pending CN109542395A (zh) | 2018-11-23 | 2018-11-23 | 抽奖信息确定方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542395A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990790A (zh) * | 2019-11-29 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及设备 |
CN111784393A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 电子券发放方法及装置 |
CN112132626A (zh) * | 2020-09-28 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 一种任务的处理方法和装置 |
CN112529423A (zh) * | 2020-12-15 | 2021-03-19 | 青岛海尔科技有限公司 | 目标资源的获取方法及装置、存储介质、电子装置 |
CN112527244A (zh) * | 2020-12-18 | 2021-03-19 | 上海万向区块链股份公司 | 基于可验证延迟函数的分布式抽签系统和方法 |
CN113506130A (zh) * | 2021-06-24 | 2021-10-15 | 北京天九云电子商务有限公司 | 一种改进奖品分布的方法、存储介质及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004084532A1 (en) * | 2003-03-17 | 2004-09-30 | Spector & Associates, Inc. | Apparatus and method for broadcasting messages to selected group (s) of users |
CN101171612A (zh) * | 2005-05-12 | 2008-04-30 | 集特科罗得岛公司 | 混合即时在线彩票游戏 |
US20120149454A1 (en) * | 2008-08-04 | 2012-06-14 | Scientific Games International, Inc. | Method and system for achieving a desired payout over a totality of individual game plays of a lottery game |
CN103489120A (zh) * | 2013-10-12 | 2014-01-01 | 从兴技术有限公司 | 一种积分销售网络抽奖系统及其实现方法 |
CN105321249A (zh) * | 2015-10-14 | 2016-02-10 | 贵阳朗玛信息技术股份有限公司 | 一种抽奖方法及装置 |
CN106157071A (zh) * | 2015-03-27 | 2016-11-23 | 天脉聚源(北京)科技有限公司 | 一种公众账号抽奖的方法和系统 |
CN106934908A (zh) * | 2017-03-17 | 2017-07-07 | 福建中金在线信息科技有限公司 | 一种抽奖方法和装置 |
CN108022357A (zh) * | 2017-11-03 | 2018-05-11 | 链家网(北京)科技有限公司 | 一种抽奖算法设计方法及装置 |
-
2018
- 2018-11-23 CN CN201811406292.3A patent/CN109542395A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004084532A1 (en) * | 2003-03-17 | 2004-09-30 | Spector & Associates, Inc. | Apparatus and method for broadcasting messages to selected group (s) of users |
CN101171612A (zh) * | 2005-05-12 | 2008-04-30 | 集特科罗得岛公司 | 混合即时在线彩票游戏 |
US20120149454A1 (en) * | 2008-08-04 | 2012-06-14 | Scientific Games International, Inc. | Method and system for achieving a desired payout over a totality of individual game plays of a lottery game |
CN103489120A (zh) * | 2013-10-12 | 2014-01-01 | 从兴技术有限公司 | 一种积分销售网络抽奖系统及其实现方法 |
CN106157071A (zh) * | 2015-03-27 | 2016-11-23 | 天脉聚源(北京)科技有限公司 | 一种公众账号抽奖的方法和系统 |
CN105321249A (zh) * | 2015-10-14 | 2016-02-10 | 贵阳朗玛信息技术股份有限公司 | 一种抽奖方法及装置 |
CN106934908A (zh) * | 2017-03-17 | 2017-07-07 | 福建中金在线信息科技有限公司 | 一种抽奖方法和装置 |
CN108022357A (zh) * | 2017-11-03 | 2018-05-11 | 链家网(北京)科技有限公司 | 一种抽奖算法设计方法及装置 |
Non-Patent Citations (1)
Title |
---|
MILO YIP: "《博客园:http://www.cnblogs.com/miloyip/archive/2010/04/21/1717109.html,2010年4月21日》", 21 April 2010 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990790A (zh) * | 2019-11-29 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及设备 |
CN110990790B (zh) * | 2019-11-29 | 2022-05-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及设备 |
CN111784393A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 电子券发放方法及装置 |
CN111784393B (zh) * | 2020-06-30 | 2024-02-02 | 中国工商银行股份有限公司 | 电子券发放方法及装置 |
CN112132626A (zh) * | 2020-09-28 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 一种任务的处理方法和装置 |
CN112529423A (zh) * | 2020-12-15 | 2021-03-19 | 青岛海尔科技有限公司 | 目标资源的获取方法及装置、存储介质、电子装置 |
CN112527244A (zh) * | 2020-12-18 | 2021-03-19 | 上海万向区块链股份公司 | 基于可验证延迟函数的分布式抽签系统和方法 |
CN113506130A (zh) * | 2021-06-24 | 2021-10-15 | 北京天九云电子商务有限公司 | 一种改进奖品分布的方法、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542395A (zh) | 抽奖信息确定方法、装置、设备以及存储介质 | |
CN108900382B (zh) | 测试方法及其装置 | |
CN105263128B (zh) | 一种批量发送短信的方法和装置 | |
CN103713895B (zh) | 一种数据发送方法和装置 | |
CN103019649B (zh) | 信息提供方法及设备 | |
CN107493326B (zh) | 网络投票处理方法、装置、服务器及计算机可读存储介质 | |
CN104618347B (zh) | 一种游戏事件处理装置及方法、网络平台 | |
CN110738804A (zh) | 一种红包发放的方法、装置及存储介质 | |
US20170084108A1 (en) | System and method for sporting event wagering | |
CN110070431A (zh) | 用户反欺诈实现方法、装置、计算机设备及存储介质 | |
CN109325657A (zh) | 一种信贷业务的审批方法、存储介质和服务器 | |
CN110233840A (zh) | 一种业务处理方法、装置、设备和存储介质 | |
US8663017B1 (en) | Matrix judging systems and methods | |
US20060019741A1 (en) | Wagering accommodation application | |
US20050107161A1 (en) | Game execution system and game execution method | |
WO2020052358A1 (en) | Method and system for game data processing, server and computer readable storage medium | |
CN109767250A (zh) | 一种在概率事件中确定命中目标的方法、装置及电子设备 | |
EP2503502A1 (en) | Soccer prediction voting system | |
CN114331446A (zh) | 区块链的链外服务实现方法、装置、设备和介质 | |
US10898811B2 (en) | Methods for provisioning and management of gamer accounts for E-tournaments | |
CN112950314A (zh) | 购票资格的确定方法、装置、设备及存储介质 | |
CN111142868A (zh) | 活动中奖系统开发方法及装置 | |
CN109559013A (zh) | 基于小游戏的风险测试方法及装置、电子设备及可读存储介质 | |
US20170243439A1 (en) | Informational Game System | |
CN113521751B (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: 20190329 |