信息处理装置和信息处理方法与流程

文档序号:11063831阅读:230来源:国知局
信息处理装置和信息处理方法与制造工艺

本发明涉及信息处理技术领域,具体而言,涉及一种信息处理装置和信息处理方法。



背景技术:

目前,随着移动互联网的发展,各类抢红包游戏层出不穷,成为商家吸粉、增强用户粘性的利器。

然而,相关技术中的红包金额分配算法存在着抢红包瞬间服务器压力大、红包的分配金额不完全随机、红包被提前分配完等诸多问题。

因此,如何使得红包的分配金额完全随机,同时降低抢红包瞬间的服务器压力成为目前亟待解决的问题。



技术实现要素:

本发明正是基于上述问题,提出了一种新的技术方案,通过提出一种新的分配红包金额的算法,使得红包的分配金额完全随机,同时降低了抢红包瞬间的服务器压力。

有鉴于此,本发明的第一方面提出了一种信息处理装置,包括:设置单元,用于接收设置指令,设置红包总金额和红包数量;获取单元,用于获取n-1个在0至1之间的随机数,其中,n表示所述红包数量;处理单元,用于按照预设算法对0、1以及n-1个所述随机数进行处理,得到n个分配比例数;第一计算单元,用于根据所述n个分配比例数和所述红包总金额计算n个红包的分配金额。

在该技术方案中,按照预设算法对0、1以及n-1个随机数进行处理,得到n个红包的n个分配比例数,将n个分配比例数与红包总金额相乘,即可得到n个红包的分配金额,因此,通过上述技术方案,由于获取0至 1之间的随机数完全随机,使得按照预设算法求得的分配比例数也完全随机,从而保证了红包的分配金额完全随机。而且,预先计算每个红包的分配金额,当接收到抢红包的请求时,将存储的每个红包的分配金额依次提取出来,完成红包发放,可以有效地降低了抢红包瞬间的服务器压力。

在上述技术方案中,优选地,所述处理单元包括:排序单元,用于将0、1以及n-1个所述随机数进行排序;所述处理单元具体用于,计算排序后的0、1以及n-1个所述随机数中每相邻两个数之间的第一差值,将计算得到的n个所述第一差值作为所述n个分配比例数。

在该技术方案中,通过将0、1以及n-1个随机数进行排序,并计算排序后的0、1以及n-1个随机数中每相邻两个数之间的第一差值,该第一差值即为分配比例数,例如,红包数量为5(即n=5),在0至1中取4个随机数且将0、1以及4个随机数按照从小到大的顺序进行排序所得到集合为{0、0.2、0.4、0.5、0.9、1}(其中,0.2、0.4、0.5、0.9为0至1中的4个随机数),计算上述集合中每相邻两数之间的第一差值即可得到5个分配比例数:0.2、0.2、0.1、0.4、0.1。由于上述计算红包分配比例数的算法简洁,因此,可以比较快速地得到分配比例数,而且在设置完红包总金额和红包数量之后计算n个红包的分配金额,使得在高并发时(即多用户抢红包时)能够快速返回结果,有效地降低了服务器的压力。优选地,n-1个随机数互不相同,这样计算得到的n个分配比例数也互不相同,即n个红包的分配金额均不会是0,也就使得在抢红包时抢到红包的用户均能得到一定的红包金额,不会出现用户抢到的红包金额为0的情况,也不会出现红包提前分配完的情况。

在上述任一技术方案中,优选地,还包括:判断单元,用于判断所述n个红包的分配金额之和与所述红包总金额是否相等;调整单元,用于若判定所述n个红包的分配金额之和与所述红包总金额不相等,对所述n个红包的分配金额进行调整,以使调整后的所述n个红包的分配金额之和与所述红包总金额相等。

在该技术方案中,由于在计算n个红包的分配金额时会因为四舍五入的原因导致n个红包的分配金额之和与红包总金额不等,因此,当判断n 个红包的分配金额之和与红包总金额不相等时,通过对n个红包的分配金额进行调整,以使得调整后的n个红包的分配金额之和与红包总金额相等,如此,避免了红包分配过程中n个红包的分配金额之和溢出或不满的情况,保证了红包的分配金额有效性。

在上述任一技术方案中,优选地,所述调整单元包括:第二计算单元,用于计算所述n个红包的分配金额之和与所述红包总金额之间的第二差值;所述调整单元具体用于,若所述第二差值为正数,则按照预设金额减少所述n个红包的分配金额,若所述第二差值为负数,则按照预设金额增加所述n个红包的分配金额。

在该技术方案中,通过计算n个红包的分配金额之和与红包总金额之间的第二差值,若第二差值为正数,即n个红包的分配金额之和多于红包总金额,则按照预设金额(如1分钱)减少n个红包的分配金额,而若第二差值为负数,即n个红包的分配金额之和少于红包总金额,则按照预设金额增加n个红包的分配金额。

优选地,在按照预设金额减少n个红包的分配金额时,减少一个红包的分配金额后即判断一次n个红包的分配金额之和与红包总金额是否相等,若相等,则停止减少,否则继续按照预设金额减少下一个红包的分配金额,直至n个红包的分配金额之和与红包总金额相等,同样的,在按照预设金额增加n个红包的分配金额时,也按照上述步骤进行。

在上述任一技术方案中,优选地,还包括:保存单元,用于将所述n个红包的分配金额保存在内存堆栈中;所述获取单元还用于,在发送所述n个红包时直接从所述内存堆栈中依次获取所述n个红包的分配金额。

在该技术方案中,通过将n个红包的分配金额保存在内存堆栈中,在用户抢红包时可以直接从内存堆栈中依次获取n个红包的分配金额,有效地提升了在用户抢红包时获取红包的分配金额的效率,从而提升了用户体验。

本发明的第二方面提出了一种信息处理方法,包括:设置单元接收设置指令,设置红包总金额和红包数量;获取单元获取n-1个在0至1之间的随机数,其中,n表示所述红包数量;处理单元按照预设算法对0、1 以及n-1个所述随机数进行处理,得到n个分配比例数;第一计算单元根据所述n个分配比例数和所述红包总金额计算n个红包的分配金额。

在该技术方案中,按照预设算法对0、1以及n-1个随机数进行处理,得到n个红包的n个分配比例数,将n个分配比例数与红包总金额相乘,即可得到n个红包的分配金额,因此,通过上述技术方案,由于获取0至1之间的随机数完全随机,使得按照预设算法求得的分配比例数也完全随机,从而保证了红包的分配金额完全随机。而且,预先计算每个红包的分配金额,当接收到抢红包的请求时,将存储的每个红包的分配金额依次提取出来,完成红包发放,可以有效地降低了抢红包瞬间的服务器压力。

在上述任一技术方案中,优选地,所述处理单元按照预设算法对0、1以及n-1个所述随机数进行处理,得到n个分配比例数的步骤,具体包括:排序单元将0、1以及n-1个所述随机数进行排序;所述处理单元计算排序后的0、1以及n-1个所述随机数中每相邻两个数之间的第一差值,将计算得到的n个所述第一差值作为所述n个分配比例数。

在该技术方案中,通过将0、1以及n-1个随机数进行排序,并计算排序后的0、1以及n-1个随机数中每相邻两个数之间的第一差值,该第一差值即为分配比例数,例如,红包数量为5(即n=5),在0至1中取4个随机数且将0、1以及4个随机数按照从小到大的顺序进行排序所得到集合为{0、0.2、0.4、0.5、0.9、1}(其中,0.2、0.4、0.5、0.9为0至1中的4个随机数),计算上述集合中每相邻两数之间的第一差值即可得到5个分配比例数:0.2、0.2、0.1、0.4、0.1。由于上述计算红包分配比例数的算法简洁,因此,可以比较快速地得到分配比例数,而且在设置完红包总金额和红包数量之后计算n个红包的分配金额,使得在高并发时(即多用户抢红包时)能够快速返回结果,有效地降低了服务器的压力。优选地,n-1个随机数互不相同,这样计算得到的n个分配比例数也互不相同,即n个红包的分配金额均不会是0,也就使得在抢红包时抢到红包的用户均能得到一定的红包金额,不会出现用户抢到的红包金额为0的情况,也不会出现红包提前分配完的情况。

在上述任一技术方案中,优选地,所述第一计算单元根据所述n个分 配比例数和所述红包总金额计算n个红包的分配金额的步骤之后,还包括:判断单元判断所述n个红包的分配金额之和与所述红包总金额是否相等;若判定所述n个红包的分配金额之和与所述红包总金额不相等,调整单元对所述n个红包的分配金额进行调整,以使调整后的所述n个红包的分配金额之和与所述红包总金额相等。

在该技术方案中,由于在计算n个红包的分配金额时会因为四舍五入的原因导致n个红包的分配金额之和与红包总金额不等,因此,当判断n个红包的分配金额之和与红包总金额不相等时,通过对n个红包的分配金额进行调整,以使得调整后的n个红包的分配金额之和与红包总金额相等,如此,避免了红包分配过程中n个红包的分配金额之和溢出或不满的情况,保证了红包的分配金额有效性。

在上述任一技术方案中,优选地,所述调整单元对所述n个红包的分配金额进行调整的步骤,具体包括:第二计算单元计算所述n个红包的分配金额之和与所述红包总金额之间的第二差值;若所述第二差值为正数,则所述调整单元按照预设金额减少所述n个红包的分配金额;若所述第二差值为负数,则所述调整单元按照预设金额增加所述n个红包的分配金额。

在该技术方案中,通过计算n个红包的分配金额之和与红包总金额之间的第二差值,若第二差值为正数,即n个红包的分配金额之和多于红包总金额,则按照预设金额(如1分钱)减少n个红包的分配金额,而若第二差值为负数,即n个红包的分配金额之和少于红包总金额,则按照预设金额增加n个红包的分配金额。

优选地,在按照预设金额减少n个红包的分配金额时,减少一个红包的分配金额后即判断一次n个红包的分配金额之和与红包总金额是否相等,若相等,则停止减少,否则继续按照预设金额减少下一个红包的分配金额,直至n个红包的分配金额之和与红包总金额相等,同样的,在按照预设金额增加n个红包的分配金额时,也按照上述步骤进行。

在上述任一技术方案中,优选地,所述第一计算单元根据所述n个分配比例数和所述红包总金额计算n个红包的分配金额的步骤之后,还包括:保存单元将所述n个红包的分配金额保存在内存堆栈中;所述获取单元, 在发送所述n个红包时直接从所述内存堆栈中依次获取所述n个红包的分配金额。

在该技术方案中,通过将n个红包的分配金额保存在内存堆栈中,在用户抢红包时可以直接从内存堆栈中依次获取n个红包的分配金额,有效地提升了在用户抢红包时获取红包的分配金额的效率,从而提升了用户体验。

通过本发明的技术方案,通过提出一种新的分配红包金额的算法,使得红包的分配金额完全随机,同时降低了抢红包瞬间的服务器压力。

附图说明

图1示出了根据本发明的一个实施例的信息处理装置的结构示意图;

图2示出了根据本发明的另一个实施例的信息处理装置的结构示意图;

图3示出了根据本发明的一个实施例的信息处理方法的流程示意图。

具体实施方式

为了可以更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

图1示出了根据本发明的一个实施例的信息处理装置的结构示意图。

如图1所示,根据本发明的一个实施例的信息处理装置100,包括:设置单元102,获取单元104,处理单元106和第一计算单元108,其中,所述设置单元102,用于接收设置指令,设置红包总金额和红包数量;所述获取单元104,用于获取n-1个在0至1之间的随机数,其中,n表示所述红包数量;所述处理单元106,用于按照预设算法对0、1以及n-1个所述随机数进行处理,得到n个分配比例数;所述第一计算单元108,用于根据所述n个分配比例数和所述红包总金额计算n个红包的分配金额。

在该技术方案中,按照预设算法对0、1以及n-1个随机数进行处理,得到n个红包的n个分配比例数,将n个分配比例数与红包总金额相乘,即可得到n个红包的分配金额,因此,通过上述技术方案,由于获取0至1之间的随机数完全随机,使得按照预设算法求得的分配比例数也完全随机,从而保证了红包的分配金额完全随机。而且,预先计算每个红包的分配金额,当接收到抢红包的请求时,将存储的每个红包的分配金额依次提取出来,完成红包发放,可以有效地降低了抢红包瞬间的服务器压力。

在上述技术方案中,优选地,所述处理单元106包括:排序单元1062,用于将0、1以及n-1个所述随机数进行排序;所述处理单元106具体用于,计算排序后的0、1以及n-1个所述随机数中每相邻两个数之间的第一差值,将计算得到的n个所述第一差值作为所述n个分配比例数。

在该技术方案中,通过将0、1以及n-1个随机数进行排序,并计算排序后的0、1以及n-1个随机数中每相邻两个数之间的第一差值,该第一差值即为分配比例数,例如,红包数量为5(即n=5),在0至1中取4个随机数且将0、1以及4个随机数按照从小到大的顺序进行排序所得到集合为{0、0.2、0.4、0.5、0.9、1}(其中,0.2、0.4、0.5、0.9为0至1中的4个随机数),计算上述集合中每相邻两数之间的第一差值即可得到5个分配比例数:0.2、0.2、0.1、0.4、0.1。由于上述计算红包分配比例数的算法简洁,因此,可以比较快速地得到分配比例数,而且在设置完红包总金额和红包数量之后计算n个红包的分配金额,使得在高并发时(即多用户抢红包时)能够快速返回结果,有效地降低了服务器的压力。优选地,n-1个随机数互不相同,这样计算得到的n个分配比例数也互不相同,即n个红包的分配金额均不会是0,也就使得在抢红包时抢到红包的用户均能得到一定的红包金额,不会出现用户抢到的红包金额为0的情况,也不会出现红包提前分配完的情况。

在上述任一技术方案中,优选地,还包括:判断单元110,用于判断所述n个红包的分配金额之和与所述红包总金额是否相等;调整单元112,用于若判定所述n个红包的分配金额之和与所述红包总金额不相等,对所述n个红包的分配金额进行调整,以使调整后的所述n个红包的分配金额 之和与所述红包总金额相等。

在该技术方案中,由于在计算n个红包的分配金额时会因为四舍五入的原因导致n个红包的分配金额之和与红包总金额不等,因此,当判断n个红包的分配金额之和与红包总金额不相等时,通过对n个红包的分配金额进行调整,以使得调整后的n个红包的分配金额之和与红包总金额相等,如此,避免了红包分配过程中n个红包的分配金额之和溢出或不满的情况,保证了红包的分配金额有效性。

在上述任一技术方案中,优选地,所述调整单元112包括:第二计算单元1122,用于计算所述n个红包的分配金额之和与所述红包总金额之间的第二差值;所述调整单元112具体用于,若所述第二差值为正数,则按照预设金额减少所述n个红包的分配金额,若所述第二差值为负数,则按照预设金额增加所述n个红包的分配金额。

在该技术方案中,通过计算n个红包的分配金额之和与红包总金额之间的第二差值,若第二差值为正数,即n个红包的分配金额之和多于红包总金额,则按照预设金额(如1分钱)减少n个红包的分配金额,而若第二差值为负数,即n个红包的分配金额之和少于红包总金额,则按照预设金额增加n个红包的分配金额。

优选地,在按照预设金额减少n个红包的分配金额时,减少一个红包的分配金额后即判断一次n个红包的分配金额之和与红包总金额是否相等,若相等,则停止减少,否则继续按照预设金额减少下一个红包的分配金额,直至n个红包的分配金额之和与红包总金额相等,同样的,在按照预设金额增加n个红包的分配金额时,也按照上述步骤进行。

在上述任一技术方案中,优选地,还包括:保存单元114,用于将所述n个红包的分配金额保存在内存堆栈中;所述获取单元104还用于,在发送所述n个红包时直接从所述内存堆栈中依次获取所述n个红包的分配金额。

在该技术方案中,通过将n个红包的分配金额保存在内存堆栈中,在用户抢红包时可以直接从内存堆栈中依次获取n个红包的分配金额,有效地提升了在用户抢红包时获取红包的分配金额的效率,从而提升了用户体 验。

图2示出了根据本发明的另一个实施例的信息处理装置的结构示意图。

如图2所示,根据本发明的另一个实施例的信息处理装置200,包括:红包参数定制单元202,分配方案获取及存储单元204,红包发放单元206和发放监控单元208,其中,所述红包参数定制单元202,用于存储发放红包的基本参数信息,包括:红包总金额、红包数量、发放红包时间;所述分配方案获取及存储单元204,用于根据红包总金额和红包数量,并结合预设算法预先计算每个红包的分配金额并存储;所述红包发放单元206,用于完成红包的发放,当接收到抢红包的请求时,将存储的每个红包的分配金额依次提取出来,完成红包发放;所述发放监控单元208,用于监控红包方法过程,可按要求返回已发金额、未发金额、发放明细(发放时间、用户、金额)。

图3示出了根据本发明的一个实施例的信息处理方法的流程示意图。

如图3所示,根据本发明的一个实施例的信息处理方法,包括:

步骤302,设置单元接收设置指令,设置红包总金额和红包数量;

步骤304,获取单元获取n-1个在0至1之间的随机数,其中,n表示所述红包数量;

步骤306,处理单元按照预设算法对0、1以及n-1个所述随机数进行处理,得到n个分配比例数;

步骤308,第一计算单元根据所述n个分配比例数和所述红包总金额计算n个红包的分配金额。

在该技术方案中,按照预设算法对0、1以及n-1个随机数进行处理,得到n个红包的n个分配比例数,将n个分配比例数与红包总金额相乘,即可得到n个红包的分配金额,因此,通过上述技术方案,由于获取0至1之间的随机数完全随机,使得按照预设算法求得的分配比例数也完全随机,从而保证了红包的分配金额完全随机。而且,预先计算每个红包的分配金额,当接收到抢红包的请求时,将存储的每个红包的分配金额依次提取出来,完成红包发放,可以有效地降低了抢红包瞬间的服务器压力。

在上述任一技术方案中,优选地,步骤306具体包括:排序单元将0、 1以及n-1个所述随机数进行排序;所述处理单元计算排序后的0、1以及n-1个所述随机数中每相邻两个数之间的第一差值,将计算得到的n个所述第一差值作为所述n个分配比例数。

在该技术方案中,通过将0、1以及n-1个随机数进行排序,并计算排序后的0、1以及n-1个随机数中每相邻两个数之间的第一差值,该第一差值即为分配比例数,例如,红包数量为5(即n=5),在0至1中取4个随机数且将0、1以及4个随机数按照从小到大的顺序进行排序所得到集合为{0、0.2、0.4、0.5、0.9、1}(其中,0.2、0.4、0.5、0.9为0至1中的4个随机数),计算上述集合中每相邻两数之间的第一差值即可得到5个分配比例数:0.2、0.2、0.1、0.4、0.1。由于上述计算红包分配比例数的算法简洁,因此,可以比较快速地得到分配比例数,而且在设置完红包总金额和红包数量之后计算n个红包的分配金额,使得在高并发时(即多用户抢红包时)能够快速返回结果,有效地降低了服务器的压力。优选地,n-1个随机数互不相同,这样计算得到的n个分配比例数也互不相同,即n个红包的分配金额均不会是0,也就使得在抢红包时抢到红包的用户均能得到一定的红包金额,不会出现用户抢到的红包金额为0的情况,也不会出现红包提前分配完的情况。

在上述任一技术方案中,优选地,步骤308之后,还包括:判断单元判断所述n个红包的分配金额之和与所述红包总金额是否相等;若判定所述n个红包的分配金额之和与所述红包总金额不相等,调整单元对所述n个红包的分配金额进行调整,以使调整后的所述n个红包的分配金额之和与所述红包总金额相等。

在该技术方案中,由于在计算n个红包的分配金额时会因为四舍五入的原因导致n个红包的分配金额之和与红包总金额不等,因此,当判断n个红包的分配金额之和与红包总金额不相等时,通过对n个红包的分配金额进行调整,以使得调整后的n个红包的分配金额之和与红包总金额相等,如此,避免了红包分配过程中n个红包的分配金额之和溢出或不满的情况,保证了红包的分配金额有效性。

在上述任一技术方案中,优选地,所述调整单元对所述n个红包的分 配金额进行调整的步骤,具体包括:第二计算单元计算所述n个红包的分配金额之和与所述红包总金额之间的第二差值;若所述第二差值为正数,则所述调整单元按照预设金额减少所述n个红包的分配金额;若所述第二差值为负数,则所述调整单元按照预设金额增加所述n个红包的分配金额。

在该技术方案中,通过计算n个红包的分配金额之和与红包总金额之间的第二差值,若第二差值为正数,即n个红包的分配金额之和多于红包总金额,则按照预设金额(如1分钱)减少n个红包的分配金额,而若第二差值为负数,即n个红包的分配金额之和少于红包总金额,则按照预设金额增加n个红包的分配金额。

优选地,在按照预设金额减少n个红包的分配金额时,减少一个红包的分配金额后即判断一次n个红包的分配金额之和与红包总金额是否相等,若相等,则停止减少,否则继续按照预设金额减少下一个红包的分配金额,直至n个红包的分配金额之和与红包总金额相等,同样的,在按照预设金额增加n个红包的分配金额时,也按照上述步骤进行。

在上述任一技术方案中,优选地,步骤308之后,还包括:保存单元将所述n个红包的分配金额保存在内存堆栈中;所述获取单元,在发送所述n个红包时直接从所述内存堆栈中依次获取所述n个红包的分配金额。

在该技术方案中,通过将n个红包的分配金额保存在内存堆栈中,在用户抢红包时可以直接从内存堆栈中依次获取n个红包的分配金额,有效地提升了在用户抢红包时获取红包的分配金额的效率,从而提升了用户体验。

以上结合附图详细说明了本发明的技术方案,通过提出一种新的分配红包金额的算法,使得红包的分配金额完全随机,同时降低了抢红包瞬间的服务器压力。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1