发明内容
本公开的目的是提供一种改进奖品分布的方法、存储介质及电子设备,用于解决现有的抽奖算法随机性太大,中奖的结果分布不均匀,导致用户体验度大大降低的技术问题。
为了实现上述目的,本公开第一方面提供一种改进奖品分布的方法,包括:
接收用户的抽奖请求;
获取抽奖活动中的奖品的条件规则,每个所述条件规则包括用于划分所述抽奖活动的不同运行阶段的边界人数、所述不同运行阶段对应的最大中奖数量和最小中奖数量;
遍历每个所述奖品的条件规则,判断所述用户是否中奖,并生成中奖结果。
可选的,所述遍历每个所述奖品的条件规则,判断所述用户是否中奖,包括:
对当前遍历到的奖品,根据当前参与所述抽奖活动的总参与人数和不同运行阶段的边界人数,判断所述抽奖活动所处的运行阶段,并获取所述抽奖活动所处的运行阶段对应的最大中奖数量和最小中奖数量;
判断所述当前奖品的已中奖人数是否小于所述最大中奖数量和最小中奖数量;
若都小于,则根据预设抽奖算法计算所述用户是否中奖;
若中奖,则跳出遍历;若没有中奖,则判断所述用户是否符合预先设置的中奖边界条件;所述中奖边界条件为:
当前边界人数+已中奖人数-总参与人数<最小中奖数量;和/或总参与人数-总中奖人数>当前边界人数-最小中奖数量-其他奖品符合当前边界人数的最小中奖数量;
若所述用户符合所述中奖边界条件,则判断所述用户中奖并跳出遍历;其中,在所述中奖边界条件为多个时,若所述当前用户符合其中任意一个所述中奖边界条件,则判断所述用户符合所述中奖边界条件。
可选的,所述方法还包括:
若所述用户不满足所述预设抽奖算法,也不符合所述中奖边界条件,则标记所述当前奖品,并在后续遍历过程中,跳过被标记的奖品。
可选的,在判断所述抽奖活动所处的运行阶段之前,所述方法还包括:
根据所述当前奖品是否被标记,判断是否跳过所述当前产品;
若所述当前奖品被标记,则跳过;否则,不跳过。
可选的,在遍历每个所述奖品的条件规则,判断所述用户是否中奖之后,所述方法还包括:
若所述用户没有中奖,则获取所述抽奖活动中的非标记奖品,并基于预设抽奖算法,计算所述用户是否中奖所述非标记奖品。
可选的,根据预设抽奖算法计算所述用户是否中奖,包括:
获取当前奖品的基本中奖概率;
根据所述基本中奖概率和随机算法计算所述用户是否中奖。
可选的,在接收用户的抽奖请求之后,所述方法还包括:
获取所述抽奖活动的奖品库存信息;
若部分奖品的库存为0,则根据预定分摊算法,将库存为0的奖品的中奖概率分摊到所述抽奖活动中的其他奖品;
若所有奖品的库存均为0,则结束抽奖。
本公开第二方面提供一种改进奖品分布的装置,包括:
接收模块,用于接收用户的抽奖请求;
获取模组,用于获取抽奖活动中的奖品的条件规则,每个所述条件规则包括用于划分所述抽奖活动的不同运行阶段的边界人数、所述不同运行阶段对应的最大中奖数量和最小中奖数量;
判断模块,用于遍历每个所述奖品的条件规则,判断所述用户是否中奖,并生成中奖结果。
本公开第三方面提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
本公开第四方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述方法的步骤。
通过上述技术方案,在传统抽奖算法之外,添加了条件规则算法调整奖品分布,条件规则算法包括用于划分所述抽奖活动的不同运行阶段的边界人数,所述不同运行阶段对应的最大中奖数量和最小中奖数量,然后,遍历每个所述奖品的条件规则,判断所述用户是否中奖,并生成中奖结果,从而解决现有的抽奖算法随机性太大,中奖的结果分布不均匀,导致用户体验度大大降低的技术问题,通过人工配置不同奖品的中奖条件规则,实现在不同的抽奖活动运行阶段,调整不同的奖品发放概率,从而能够人工干预抽奖活动的进展与奖品分布,使其更加合理、有效,实现了人工干预奖品的分发过程和分发进度,提高抽奖活动对用户的吸引力的技术效果。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在本公开实施例中,在抽奖活动开始前,首先完成抽奖活动的前置条件,配置抽奖活动,设置活动参与人数、时间范围等,设置每个奖品的库存,基本中奖概率以及奖品的中奖条件规则。
需要说明的是,在一次抽奖活动中,可能包括一个或多个奖品,本公开实施例中,可以对抽奖活动的部分奖品配置中奖条件规则,也可以对所有奖品都配置中奖条件规则。举例来讲,假设抽奖活动包括一等奖、二等奖和三等奖,可以只对一等奖配置中奖条件规则,二等奖、三等奖不配置中奖条件规则;也可以对一等奖、二等奖和三等奖均配置中奖条件规则。在具体实施过程中,可以根据实际需要进行配置,本公开对此不做限制。
如图1所示,图1是根据一示例性实施例示出的一种改进奖品分布的方法的流程示意图,包括以下步骤。
步骤101,接收用户的抽奖请求。本公开实施例中,用户可以通过各类终端参与抽奖活动,如:手机、平板电脑等等。
步骤102,获取抽奖活动中的奖品的条件规则,每个所述条件规则包括用于划分所述抽奖活动的不同运行阶段的边界人数、所述不同运行阶段对应的最大中奖数量和最小中奖数量。
举例来讲,如图2所示,图2是根据一示例性实施例示出的一种奖品规则配置的示意图,其中,将抽奖活动按抽奖人数划分为三个运行阶段,边界人数分别为10、100、1000,第一阶段为抽奖前10名,第二阶段为抽奖前100名,第三阶段为抽奖前1000名。每个阶段设置对应的最大中奖数量和最小中奖数量,如图2所示,对于参与抽奖的前10名用户,最小中奖数量为1,最大中奖数量为5,对于参与抽奖的前100名用户,最小中奖数量为10,最大中奖数量为20,对于参与抽奖的前1000名用户,最小中奖数量为30,最大中奖数量为50。在其他实施例中,除了按照抽奖人数划分抽奖活动的运行阶段外,还可以按照其他方式划分不同运动阶段,例如:按照抽奖时间划分,本公开对此不做限制。
本公开实施例中,对于抽奖活动中的不同奖品而言,不同奖品可以对应不同的条件规则,具体的,不同奖品划分的运行阶段的数量可以不同,并设置不同的最大中奖数量和最小中奖数量。当然,不同奖品的条件规则也可以完全相同或部分相同,本公开对此不做限制。
步骤103,遍历每个所述奖品的条件规则,判断所述用户是否中奖,并生成中奖结果。
在接收到用户的抽奖请求时,对于配置有条件规则的奖品,遍历每个奖品对应的条件规则,判断用户是否中奖。
上述技术方案中,不再单纯根据现有的算法随机判断用户是否中奖,通过配置抽奖活动的各个运行阶段的奖品中奖率,能够人工干预抽奖活动的进展与奖品分布,使其更加合理、有效,实现了人工干预奖品的分发过程和分发进度,提高抽奖活动对用户的吸引力的技术效果。
接下来,对步骤103的一种可能的实施方式进行说明,如图3所示,包括以下步骤。在具体实施过程中,不限于以下实施方式。
步骤1031,对当前遍历到的奖品,根据当前参与所述抽奖活动的总参与人数和不同运行阶段的边界人数,判断所述抽奖活动所处的运行阶段,并获取所述抽奖活动所处的运行阶段对应的最大中奖数量和最小中奖数量。
举例来讲,沿用上述将抽奖活动按抽奖人数划分为三个运行阶段,边界人数分别为10、100、1000的例子进行说明。假设当前参与抽奖活动的总参与人数为73,则判断所述抽奖活动处于第二阶段,对应的当前边界人数为100,最大中奖数量为20,最小中奖数量为10;又例如,假设当前参与抽奖活动的总参与人数为503,则判断所述抽奖活动处于第三阶段,对应的当前边界人数为1000,最大中奖数量为50,最小中奖数量为30。
其中,当前边界人数是指抽奖活动所处的运行阶段对应的边界人数,如图2所示,假设抽奖活动处于第一运行阶段,则相应的当前边界人数为10,假设抽奖活动处于第二运行阶段,则相应的当前边界人数为100,假设抽奖活动处于第三运行阶段,则相应的当前边界人数为1000,依次类推。
步骤1032,判断所述当前奖品的已中奖人数是否小于所述最大中奖数量和最小中奖数量。若都小于,则执行步骤1033。若已中奖人数等于最大中奖数量,则跳出遍历,此时用户不可能中奖,不然无法满足条件规则中的最大中奖人数要求,抽奖结束;若已中奖人数小于最大中奖数量,且大于或等于最小中奖数量,则按照预设抽奖算法继续抽奖。
步骤1033,根据预设抽奖算法计算所述用户是否中奖。若中奖,则执行步骤1044;若没有中奖,则执行步骤1055。
本公开实施例中,预设抽奖算法可以为随机算法,例如,通过将多个奖品的中奖概率最终转化为一个数值范围,随机在数据范围内则代表符合某一个奖品的中奖条件。如图2所示,在配置抽奖活动时,可以对奖品的基本中奖概率进行设置。
步骤1034,跳出遍历。
步骤1035,判断所述用户是否符合预先设置的中奖边界条件。若所述用户符合所述中奖边界条件,则执行步骤1036;若用户不符合所述边界条件,则执行步骤1037。
本公开实施例中,中奖边界条件可以为:当前边界人数+已中奖人数-总参与人数<最小中奖数量;和/或总参与人数-总中奖人数>当前边界人数-最小中奖数量-其他奖品符合当前边界人数的最小中奖数量。
其中,当前边界人数、最小中奖数量为步骤1031中确定的值,总中奖人数是指抽奖活动中所有奖品的已中奖人数之和。
本公开实施例中,中奖边界条件可以设置为以下三种情况。
一种可能的情况为,中奖边界条件为,当前边界人数+已中奖人数-总参与人数<最小中奖数量。另一种可能的情况为,中奖边界条件为,总参与人数-总中奖人数>当前边界人数-最小中奖数量-其他奖品符合当前边界人数的最小中奖数量。
第三种可能的情况为,中奖边界条件包括两个,分别为:
当前边界人数+已中奖人数-总参与人数<最小中奖数量;
总参与人数-总中奖人数>当前边界人数-最小中奖数量-其他奖品符合当前边界人数的最小中奖数量。
在第三种情况中,当前用户符合其中任意一个中奖边界条件时,则判断所述用户符合中奖边界条件。并且,在第三种情况中,第一个边界条件是针对单个奖品设置的,第二个边界条件是针对抽奖活动的所有配置有条件规则的奖品设置的,使得中奖边界条件既能合理干预单个奖品的分发过程和分发进度,又能合理干预整个抽奖活动的所有奖品的分发过程和分发进度,从而有效提升抽奖活动的用户体验度和吸引力。
步骤1036,判断所述用户中奖并跳出遍历。
步骤1037,标记所述当前奖品,并在此次抽奖的后续遍历过程中,跳过被标记的奖品。本公开实施例中,如果用户没有满足随机算法,也没有符合边界条件,则被标记奖品不再参与规则判断,在之后的遍历过程中跳过。
本公开实施例中,遍历完一个奖品的条件规则后,又开始遍历下一个奖品的条件规则,直到用户中奖或者遍历完所有奖品的条件规则。
由于传统的抽奖概率算法缺少对奖品分布规则的人工干预能力,本公开在传统随机数算法之外添加了条件规则算法调整奖品分布,实现了人工干预奖品的分发过程,分发进度,提供对用户的吸引力。通过人工配置不同奖品的中奖条件规则,实现在不同的抽奖活动运行阶段,调整不同的奖品发放概率,确保奖品发送是可以全部送出的,中奖的分布是合理的,使得抽奖活动的用户体验良好,能够有效激发用户动力。在其他实施例中,条件规则算法也可以替换为其他方式实现,本公开对此不做限制。
本公开实施例中,为了使抽奖活动客观有效,在接收到用户的抽奖请求后,需要判断用户的剩余抽奖次数;若用户的剩余抽奖次数大于0,则继续抽奖;若用户的剩余抽奖次数为0,则结束抽奖。
本公开实施例中,为了使抽奖活动客观有效,在接收到用户的抽奖请求后,需要判断抽奖活动的奖品库存信息,若部分奖品的库存为0,则根据预定分摊算法,将库存为0的奖品的中奖概率分摊到抽奖活动中的其他奖品;若所述奖品的库存均为0,则结束抽奖。
在一种可能的实施方式中,可以将库存为0的奖品的中奖概率按其他奖品的中奖概率的比例进行分摊,使得其他奖品的中奖概率加起来等于100%。举例来讲,抽奖活动包括三个奖品,分别为一等奖、二等奖和三等奖,中奖概率分别为20%,30%和50%,假设一等奖的库存为0,则二等奖和三等奖分摊之后的中奖概率分别为37.5%和62.5%。本公开实施例中的分摊算法只是举例说明,在具体实施过程中,也可以采用其他分摊算法,本公开对此不做限制。
接下来,结合图4对本公开实施例中的改进奖品分布的方法进行详细说明。该方法包括以下步骤。
步骤401,接收用户的抽奖请求。
步骤402,从缓存中获取指定抽奖活动的信息数据,状态时间、参与人数上限等,判断活动是否有效。若有效,则执行步骤303;否则返回活动结束。
步骤403,从缓存中获取用户剩余抽奖次数,大于0则进行下一步,执行步骤404;否则返回活动结束。
步骤404,从缓存中获取抽奖活动的奖品规则信息,库存信息。
步骤405,将库存为0的奖品概率分摊到其他奖品,若所有奖品库存为0,则返回活动结束。
步骤406,获取所有奖品的条件规则,开始遍历判断每一个奖品的每一条规则。
步骤407,判断当前奖品是否需要跳过。若当前奖品为被标记的奖品,则跳过;若当前奖品未被标记,则执行步骤408。
步骤408,判断抽奖活动当前的总参与人数是否超过奖品条件规则的某个边界人数,如果超出,执行步骤409,按照所处的运行阶段对应的规则进行判断。否则,执行步骤410。
步骤409,判断当前奖品的已中奖数量是否小于最大中奖数量和最小中奖数量,若小于,则执行步骤411。
步骤410,按照预设抽奖算法继续抽奖。
步骤411,通过随机算法计算奖品是否中奖,如果中奖则跳出遍历;否则,执行步骤412。
步骤412,继续判断当前是否达到了条件规则的中奖边界条件。如果符合中奖边界条件,则说明此时必须中奖,不然无法满足条件规则中的最小中奖人数要求。满足边界条件后则执行步骤413;如果不符合中奖边界条件,则执行步骤414;并且,如果没有满足随机算法,也没有符合边界规则,标记此奖品不再参与规则判断,在之后的遍历过程中跳过。
步骤413,判断用户中奖并跳出遍历。
步骤414,经过所有奖品的条件规则后,如果最终没有中奖,则会在非标记奖品中通过随机算法计算是否中奖一次。
步骤415,最终的中奖结果返回给用户。
基于同一发明构思,本公开还提供一种改进奖品分布的装置500,如图5所示,包括:接收模块501,用于接收用户的抽奖请求;获取模组502,用于获取抽奖活动中的奖品的条件规则,每个所述条件规则包括用于划分所述抽奖活动的不同运行阶段的边界人数、所述不同运行阶段对应的最大中奖数量和最小中奖数量;判断模块503,用于遍历每个所述奖品的条件规则,判断所述用户是否中奖,并生成中奖结果。
可选的,所述判断模块503用于对当前遍历到的奖品,根据当前参与所述抽奖活动的总参与人数和不同运行阶段的边界人数,判断所述抽奖活动所处的运行阶段,并获取所述抽奖活动所处的运行阶段对应的最大中奖数量和最小中奖数量;判断所述当前奖品的已中奖人数是否小于所述最大中奖数量和最小中奖数量;若都小于,则根据预设抽奖算法计算所述用户是否中奖;若中奖,则跳出遍历;若没有中奖,则判断所述用户是否符合预先设置的中奖边界条件;所述中奖边界条件为:当前边界人数+已中奖人数-总参与人数<最小中奖数量;和/或总参与人数-总中奖人数>当前边界人数-最小中奖数量-其他奖品符合当前边界人数的最小中奖数量;若所述用户符合所述中奖边界条件,则判断所述用户中奖并跳出遍历;其中,在所述中奖边界条件为多个时,若所述当前用户符合其中任意一个所述中奖边界条件,则判断所述用户符合所述中奖边界条件。
可选的,所述装置500还包括标记模块,用于在所述用户不满足所述预设抽奖算法,也不符合所述中奖边界条件时,则标记所述当前奖品,并在后续遍历过程中,跳过被标记的奖品。
可选的,所述判断模块503还用于在判断所述抽奖活动所处的运行阶段之前,根据所述当前奖品是否被标记,判断是否跳过所述当前产品;若所述当前奖品被标记,则跳过;否则,不跳过。
可选的,所述装置500还包括计算模块,用于所述在遍历每个所述奖品的条件规则,判断所述用户是否中奖之后,若所述用户没有中奖,则获取所述抽奖活动中的非标记奖品,并基于预设抽奖算法,计算所述用户是否中奖所述非标记奖品。
可选的,所述判断模块503用于获取当前奖品的基本中奖概率;根据所述基本中奖概率和随机算法计算所述用户是否中奖。
可选的,所述装置500还包括库存确认模块,用于在接收用户的抽奖请求之后,获取所述抽奖活动的奖品库存信息;若部分奖品的库存为0,则根据预定分摊算法,将库存为0的奖品的中奖概率分摊到所述抽奖活动中的其他奖品;若所有奖品的库存均为0,则结束抽奖。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种电子设备600的框图。如图6所示,该电子设备600可以包括:处理器601,存储器602。该电子设备600还可以包括多媒体组件603,输入/输出(I/O)接口604,以及通信组件605中的一者或多者。
其中,处理器601用于控制该电子设备600的整体操作,以完成上述的改进奖品分布的方法中的全部或部分步骤。存储器602用于存储各种类型的数据以支持在该电子设备600的操作,这些数据例如可以包括用于在该电子设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或通过通信组件605发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口604为处理器601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件605用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件605可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的改进奖品分布的方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的改进奖品分布的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器602,上述程序指令可由电子设备600的处理器601执行以完成上述的改进奖品分布的方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的改进奖品分布的方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。