基于参与时间的幸运用户抽取方法及系统与流程

文档序号:11953860阅读:395来源:国知局
基于参与时间的幸运用户抽取方法及系统与流程

本发明涉及幸运用户抽取技术领域,更为具体地,涉及一种基于参与时间的幸运用户抽取方法及系统。



背景技术:

在各种活动、节目中,为了提高用户的参与积极性,活动或者节目的主办方通常会选择抽取幸运用户的方式来实现与用户的互动。

现有的幸运用户抽取大多是采用产生随机数的抽取方法。例如,一项申请号2012105065605的中国发明专利公开了一种抽奖方法,但其是根据提供的初始抽奖范围、中奖人数及备选人数,通过产生随机数来进行的抽取。此种抽取方法不具有实时性,并且通过产生随机数进行抽奖的方式容易使活动主办方进行暗箱操作,从而致使活动参与者不能得到公平的对待。

另外,一项申请号201110206055的中国发明专利申请公开了一种互联网实时抽奖系统及实现方法,虽然其借助客户端和通信服务器能够实现实时抽奖,但其仍然是通过产生随机数来产生中奖用户。因此,其仍然使活动主办方无法避免暗箱操作的嫌疑,从而使用户的参与度不高。

通过上述可知,现有的抽取的幸运用户的方式一般是通过调用随机函数生成伪随机序列,而此种方法所生成的随机数序列具有显著的周期性、规律性和重复性,因此容易使抽奖用户对抽奖事件的随机性产生疑问。即:现有的通过产生随机数来抽取幸运用户的方式对于用户来说并不是公开透明的,因此容易使活动主办方进行暗箱操作,进而使得幸运用户的抽取无法实现概率上的普遍性和公平性。



技术实现要素:

鉴于上述问题,本发明的目的是提供一种基于参与时间的幸运用户抽取方法,以解决现有的幸运用户抽取方式存在不公开透明的问题。

本发明提供一种基于参与时间的幸运用户抽取方法,包括:

根据预设的互动时间段,对在互动时间段范围内的参与者进行编码,获取第一时间序列,第一时间序列中包括总的编码个数以及每个编码的时间记录;

根据预设的记录截取方式,从第一时间序列中截取预定数量个时间记录;

根据预设的转换规则,将从第一时间序列中截取的每个时间记录转换成数值;

根据预设的映射方式,将所转换的数值进行映射获取第一映射值,根据第一映射值与总的编码个数之间的余数,以及偏移量获取一位幸运用户;

根据所设置的所需的幸运用户的数量,通过递归的方式,从所获取的第一时间序列中获取所需数量的幸运用户。

其中,递归的过程包括:已获取的幸运用户的数量自增1,总的编码个数自减1,获取当前总的编码个数;

当已获取的幸运用户的数量未达到所需的幸运用户的数量时,将所获取的幸运用户的时间记录从第一时间序列中剔除,对时间序列重新排序,获取第二时间序列,所述第二时间序列中包括当前总的编码个数以及每个编码的时间记录;

根据预设的记录截取方式,从第二时间序列中截取预定数量个时间记录;

根据预设的转换规则,将从第二时间序列中截取的每个时间记录转换成数值;

根据预设的映射方式,将所转换的数值进行映射获取第二映射值,根据第二映射值与当前总的编码个数的余数,以及偏移量获取下一位幸运用户。

其中,预设的记录截取方式为连续的截取预定数量个时间记录,或者不连续的截取预定数量个时间记录。

另一方面,本发明提供一种基于参与时间的幸运用户抽取系统,包括:

时间序列获取单元,用于根据预设的互动时间段,对在互动时间段范围内的参与者进行编码,获取第一时间序列,第一时间序列中包括总的编码个数以及每个编码的时间记录;

截取单元,用于根据预设的记录截取方式,从第一时间序列中截取预定数量个时间记录;

数值转换单元,用于根据预设的转换规则,将从第一时间序列中截取的每个时间记录转换成数值;

幸运用户获取单元,用于根据预设的映射方式,将所转换的数值进行映射获取第一映射值,根据第一映射值与总的编码个数之间的余数,以及偏移量获取一位幸运用户;以及,

根据所设置的所需的幸运用户的数量,通过递归的方式,从所获取的第一时间序列中获取所需数量的幸运用户。

利用上述根据本发明的基于参与时间的幸运用户抽取方法及系统,通过对所有在互动时间段范围内的参与者进行编码,然后以预设的记录截取方式截取预定数量个时间记录,根据预定的计算方式并通过递归的方式获取所需数量的幸运用户。本发明通过一个时间样本便能够获取任意数量个幸运用户,从而给活动主办方带来良好的使用体验;并且,在将选择方法和用户的参与时间进行公布的情景下,参与活动的用户通过本发明提供的方法可以自行计算出幸运用户,使得对幸运用户的抽取变得公开透明。

附图说明

通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:

图1为根据本发明实施例的基于参与时间的幸运用户抽取方法的流程示意图;

图2为根据本发明实施例的基于参与时间的幸运用户抽取系统的逻辑结构框图。

具体实施方式

以下将结合附图对本发明的具体实施例进行详细描述。

针对前述现有的抽取幸运用户的方式每次只能产生一个幸运用户的问题,本发明通过对所有在互动时间段范围内的参与者进行编码,然后以预设的记录截取方式截取预定数量个时间记录,根据预定的计算方式并通过递归的方式能够获取任意数量个幸运用户,从而给用户带来良好的使用体验。

为了详细说明本发明提供的基于参与时间的幸运用户抽取方法,图1示出了根据本发明实施例的基于参与时间的幸运用户抽取方法的流程。

如图1所示,本发明提供的基于参与时间的幸运用户抽取方法包括:

S110:根据预设的互动时间段,对在互动时间段范围内的参与者进行编码,获取第一时间序列,第一时间序列中包括总的编码个数以及每个编码的时间记录。

作为本发明的一个示例,假设预设的互动时间段为12时15分至12时25分,此时,则将在12时15分至12时25分这个时间范围内的参与者按参与进来的时间先后顺序进行编码,以获取第一时间序列。其中,第一时间序列可以精确到毫秒,例如,参与者A是在12时15分15秒443毫秒参与的,而另一个参与者B是在12时15分15秒500毫秒参与的,假设在上述两个参与时间段内没有其他的参与者,那么,很显然,在获取的第一时间序列中,参与者A的编码必然在参与者B之前。

作为本发明的另一个示例,假设在预设的互动时间段范围内,有m个参与者,那么则会产生m个时间序列,分别为x1,x2,…,xm,编码从1到m,然后将这m个时间序列存放在a[m]数组中,其中,a[j]=xj

S120:根据预设的记录截取方式,从第一时间序列中截取预定数量个时间记录。

作为示例,选择截止时间前(即互动时间段的截止时间前)的n条时间记录,创建选择变量。其中,n=λm;λ为截取系数,λ∈(0,1)。例如,m=10000,λ=0.2,则n=2000。设置所需的幸运用户的数量为q,已获取的幸运用户的数量为p,其中,在初始状态下,p为0。

进一步地,在步骤S110与步骤S120之间,还包括设置所需的幸运用户的数量,以及对所设置的所需的幸运用户的数量进行合法性验证,如果不合法,给出重新设置的提示,并重新设置所需的幸运用户的数量。例如,当所设置的所需的幸运用户的数量为0时(即q=0),则表示此设置不合法,需要重新设置所需的幸运用户的数量。

S130:根据预设的转换规则,将从第一时间记录中截取的每个时间记录转换成数值。

其中,预设的转换规则可以为,将从第一时间记录中所截取的每个时间记录按时、分、秒、毫秒的顺序依次排列,并转换成数值。例如,在所截取的n条时间记录中,某个时间记录为12时15分15秒443毫秒,那么该时间记录转换成数值之后则为121515443。

进一步地,还可以对转换成数值之后的时间记录进行合法验证,以确定是否转换为了规定格式的数值。

S140:根据预设的映射方式,将所转换的数值进行映射获取第一映射值,根据第一映射值与总的编码个数之间的余数,以及偏移量获取一位幸运用户。

也就是说,在将所截取的预定数量个时间记录转换成数值之后,可以将所转换的所有数值通过一定的映射规则f得到一个大的数f(t1,t2,...,tn),根据这个数对总的编码个数之间的余数,以及偏移量获取一位幸运用户。公式为:幸运用户=f(t1,t2,...,tn)%m+s,其中f是一种映射规则,目的是为了获取一个远远大于m的数f(t1,t2,...,tn)。

作为本发明的一个示例,f可以是这样一种规则:即:将所转换的n条时间记录相加,获取n条时间记录的数值之和,然后将n条时间记录的数值之和除以总的编码个数m后取余数,余数加上偏移量即可得到一位幸运用户。例如,将所获取的n条时间记录的数值之和除以总的编码个数m后取的余数为r,r再加上偏移量s,即,其中偏移量s可以取为1000001或者其他值,ti为所截取的时间记录中的第i条记录。

作为本发明的另一个示例,f也可以是这样一种规则:即:将所转换的n条时间记录相加,获取n条时间记录的数值平方之和,然后将n条时间记录的数值之和除以总的编码个数m后取余数,余数加上偏移量即可得到一位幸运用户。例如,将所获取的n条时间记录的数值之和除以总的编码个数m后取的余数为r,r再加上偏移量s,即,其中偏移量s可以取为1000001或者其他值,ti为所截取的时间记录中的第i条记录。当然,f还可以是其他的映射规则,只要通过映射能够得到一个大于m的数都可以在本发明的预设的映射方式的保护范围内,在此不再赘述。

需要说明的是,i的取值可以是连续的,也可以是不连续的。即,在上述步骤S120中,预设的记录截取方式为连续的截取预定数量个时间记录,或者不连续的截取预定数量个时间记录。其中,连续的截取预定数量个时间记录的过程为:以互动时间段的开始时间为起点,依次截取预定数量个时间记录;或者,以互动时间段的中间时间为起点,依次截取预定数量个时间记录;或者,以互动时间段的结束时间为起点,依次从后往前截取预定数量个时间记录。不连续的截取预定数量个时间记录的过程为:从第一时间序列中随机截取预定数量个时间记录;或者,以等差数列的方式从时间序列中截取预定数量个时间记录。

作为示例,当i的取值是连续的时,可以从互动时间段的开始时间截取,即i取0,1,…,n-1;或者从中间选取,即i取r,r+1,…,r+n-1,其中,m-n+1>r>0;或者从最后选取,即i取m-n,m-n=1,…,m-1。i不连续,一种是从m个中随机选取n个时间记录;另一种是i为等差数列,其中公差为d,d<m/n,即i取i,i+d,…,i+nd,0<i+nd<m。

此外,还可以对所获取的幸运用户的编码进行存储,例如,将所获取的幸运用户的编码存储在t[q]数组中。

S150:根据所设置的所需的幸运用户的数量,通过递归的方式,从所获取的第一时间序列中获取所需数量的幸运用户。

其中,递归的过程包括:已获取的幸运用户的数量自增1,总的编码个数自减1,获取当前总的编码个数;当已获取的幸运用户的数量未达到所需的幸运用户的数量时,将所获取的幸运用户的时间记录从所获取的第一时间序列中剔除,然后对第一时间序列重新排序,以获取第二时间序列,第二时间序列中包括当前总的编码个数以及每个编码的时间记录;根据预设的记录截取方式,从第二时间序列中截取预定数量个时间记录,根据预设的转换规则,将从第二时间序列中截取的每个时间记录转换成数值;根据预设的映射方式,将所转换的数值进行映射获取第二映射值,根据第二映射值与与当前总的编码个数的余数,以及偏移量获取下一位幸运用户。

其中,在根据预设的映射方式,将所转换的数值进行映射获取第二映射值时,该预设的映射方式即为上述的映射方式,在此不再赘述。

作为示例,在获取一位幸运用户之后,已获取的幸运用户的数量p自增1,总的编码个数自减1;判断已获取的幸运用户的数量是否小于所需的幸运用户的数量,若小于,则继续,若等于,则结束。记本次所获取的幸运用户的时间记录为xr,假设已获取的幸运用户的数量p小于所需的幸运用户的数量q,那么,则在第一时间序列x1,x2,…,xm中将本次所获取的幸运用户的时间记录xr剔除,并重新对第一时间序列x1,x2,…,xm进行排序,获取第二时间序列xr+1,xr+2,…,xm,即,a[j]=a[j+1],r<j<m+1,然后根据预设的记录截取方式,从所获取的第二时间序列中截取n条时间记录,并重复上述步骤S130和步骤S140,以获取下一位幸运用户。

需要说明的是,在根据预设的记录截取方式,从所获取的第二时间序列中截取预定数量个时间记录时,该预设的记录截取方式即为上述的连续的截取或者不连续的截取的方式,在此也不再赘述。

进一步地,在步骤S110之前,还包括根据用户所选择的幸运用户抽取模式,设置互动时间段。例如,可以将当天的13时16分至14时16分这个时间段设置为互动时间段。

此外,当需要改变所需的幸运用户的数量时,在执行完当前所需数量的幸运用户之后,重新设置所需的幸运用户的数量。例如,当前执行的所需的幸运用户的数量为5,但出于某方面的考虑,现需要将所需的幸运用户的数量增至为10,那么,在获取完5个幸运用户之后(即在当前所需数量的幸运用户执行完后),重新将所需的幸运用户的数量设置为10,然后重新执行步骤S120至S150即可获取10个幸运用户。

再例如,当前执行的所需的幸运用户的数量为5,但出于某方在的考虑,现需要将所需的幸运用户的数量减少为3,此时,只需在所抽取的5个幸运用户中选取前3个即可。

作为示例,下述将对本发明提供的基于参与时间的幸运用户抽取方法的流程进行具体说明。

本发明提供的基于参与时间的幸运用户抽取方法具体包括:

1、选取模式,提供互动时间段;

2、对在互动时间段内的参与者进行编码,获取m个时间序列,其中总的编码个数为m,以特定的方式截取n个时间记录,将已抽取的幸运用户的数量设置为p,所需的幸运用户的数量设置q;

3、将n条时间记录按时、分、秒、毫秒依次排列成一组数值;

4、将这n组数值之和徐以总的编码个数m后取余数,余数加上偏移量s即获取一位幸运用户,然后记余数为r,将所获取的幸运用户的编码存放在t[q]数组中;

5、总编码数m自减1,已获取的幸运用户的数量p自增1;

6、判断已获取的幸运用户的数量p是否小于所需的幸运用户的数量q,若等于则本次流程结束,若小于,则继续本次流程;

7、在时间序列m中将已获取的幸运用户的时间序列去掉,然后对上述时间序列重新排序,按预定的方式在重新排序的时间序列中截取n条时间记录,然后返回步骤3,直至获取完所需数量的幸运用户之后,流程结束。

通过上述可知,本发明提供的基于参与时间的幸运用户抽取方法,通过对所有在互动时间段范围内的参与者进行编码,然后以预设的记录截取方式截取预定数量个时间记录,根据预定的计算方式并通过递归的方式能够获取任意数量个幸运用户。也就是说,根据本发明,活动主办方只需举行一次活动,即只需设置一次互动时间段,从而获取一个时间样本,便可以获取任意数量的所需幸运用户,从而提高活动主办方的使用体验;并且,在将选择方法和用户的参与时间进行公布的情景下,参与活动的用户通过本发明提供的方法可以自行计算出幸运用户,使得对幸运用户的抽取变得公开透明。

与上述方法相对应,本发明还提供一种基于参与时间的幸运用户抽取系统,图2示出了根据本发明实施例的基于参与时间的幸运用户抽取系统的逻辑结构。

如图2所示,本发明提供的基于参与时间的幸运用户抽取系统200包括时间序列获取单元210、截取单元220、数值转换单元230、幸运用户获取单元240。

其中,时间序列获取单元210用于根据预设的互动时间段,对在互动时间段范围内的参与者进行编码,获取第一时间序列,第一时间序列中包括总的编码个数以及每个编码的时间记录。

参考前述,作为本发明的一个示例,假设预设的互动时间段为12时15分至12时25分,此时,则将在12时15分至12时25分这个时间范围内的参与者按参与进来的时间先后顺序进行编码,以获取第一时间序列。其中,第一时间序列可以精确到毫秒,例如,参与者A是在12时15分15秒443毫秒参与的,而另一个参与者B是在12时15分15秒500毫秒参与的,假设在上述两个参与时间段内没有其他的参与者,那么,很显然,在获取的第一时间序列中,参与者A的编码必然在参与者B之前。

作为本发明的另一个示例,假设在预设的互动时间段范围内,有m个参与者,那么则会产生m个时间序列,分别为x1,x2,…,xm,编码从1到m,然后将这m个时间序列存放在a[m]数组中,其中,a[j]=xj

截取单元220用于根据预设的记录截取方式,从第一时间序列中截取预定数量个时间记录。作为示例,选择截止时间前(即互动时间段的截止时间前)的n条时间记录,创建选择变量。其中,n=λm;λ为截取系数,λ∈(0,1)。例如,m=10000,λ=0.2,则n=2000。设置所需的幸运用户的数量为q,已获取的幸运用户的数量为p,其中,在初始状态下,p为0。

进一步地,在截取单元220根据预设的记录截取方式,从第一时间序列中截取预定数量个时间记录之前,还包括设置所需的幸运用户的数量,以及对所设置的所需的幸运用户的数量进行合法性验证,如果不合法,给出重新设置的提示,并重新设置所需的幸运用户的数量。例如,当所设置的所需的幸运用户的数量为0时(即q=0),则表示此设置不合法,需要重新设置所需的幸运用户的数量。

数值转换单元230用于根据预设的转换规则,将从第一时间序列中截取的每个时间记录转换成数值。

其中,预设的转换规则为,将所截取的每个时间记录按时、分、秒、毫秒的顺序依次排列,并转换成数值。例如,在从第一时间序列中所截取的n条时间记录中,某个时间记录为12时15分15秒443毫秒,那么该时间记录转换成数值之后则为121515443。

进一步地,还可以对转换成数值之后的时间记录进行合法验证,以确定是否转换为了规定格式的数值。

幸运用户获取单元240用于根据预设的映射方式,将所转换的数值进行映射获取第一映射值,根据第一映射值与总的编码个数之间的余数,以及偏移量获取一位幸运用户;以及,根据所设置的所需的幸运用户的数量,通过递归的方式,从所获取的第一时间序列中获取所需数量的幸运用户。

也就是说,在将所截取的预定数量个时间记录转换成数值之后,可以将所转换的所有数值通过一定的映射规则f得到一个大的数f(t1,t2,...,tn),根据这个数对总的编码个数之间的余数,以及偏移量获取一位幸运用户。公式为:幸运用户=f(t1,t2,...,tn)%m+s,其中f是一种映射规则,目的是为了获取一个远远大于m的数f(t1,t2,...,tn)。

作为本发明的一个示例,f可以是这样一种规则:即:将所转换的n条时间记录相加,获取n条时间记录的数值之和,然后将n条时间记录的数值之和除以总的编码个数m后取余数,余数加上偏移量即可得到一位幸运用户。例如,将所获取的n条时间记录的数值之和除以总的编码个数m后取的余数为r,r再加上偏移量s,即,其中偏移量s可以取为1000001或者其他值,ti为所截取的时间记录中的第i条记录。

作为本发明的另一个示例,f也可以是这样一种规则:即:将所转换的n条时间记录相加,获取n条时间记录的数值平方之和,然后将n条时间记录的数值之和除以总的编码个数m后取余数,余数加上偏移量即可得到一位幸运用户。例如,将所获取的n条时间记录的数值之和除以总的编码个数m后取的余数为r,r再加上偏移量s,即,其中偏移量s可以取为1000001或者其他值,ti为所截取的时间记录中的第i条记录。当然,f还可以是其他的映射规则,只要通过映射能够得到一个大于m的数都可以在本发明的预设的映射方式的保护范围内,在此不再赘述。

其中,i的取值可以是连续的,也可以是不连续的。即,在上述步骤S120中,预设的记录截取方式为从时间序列中连续截取预定数量个时间记录,或者从时间序列中不连续截取预定数量个时间记录。其中,从时间序列中连续截取预定数量个时间记录的过程为:以互动时间段的开始时间为起点,依次截取预定数量个时间记录;或者,以互动时间段的中间时间为起点,依次截取预定数量个时间记录;或者,以互动时间段的结束时间为起点,依次从后往前截取预定数量个时间记录。从时间序列中不连续的截取预定数量个时间记录的过程为:从时间序列中随机截取预定数量个时间记录;或者,以等差数列的方式从时间序列中截取预定数量个时间记录。

作为示例,当i的取值是连续的时,可以从互动时间段的开始时间截取,即i取0,1,…,n-1;或者从中间选取,即i取r,r+1,…,r+n-1,其中,m-n+1>r>0;或者从最后选取,即i取m-n,m-n=1,…,m-1。i不连续,一种是从m个中随机选取n个时间记录;另一种是i为等差数列,其中公差为d,d<m/n,即i取i,i+d,…,i+nd,0<i+nd<m。

此外,还可以对所获取的幸运用户的编码进行存储,例如,将所获取的幸运用户的编码存储在t[q]数组中。

此外,递归的过程包括:已获取的幸运用户的数量自增1,总的编码个数自减1,获取当前总的编码个数;当已获取的幸运用户的数量未达到所需的幸运用户的数量时,将所获取的幸运用户的时间记录从所获取的第一时间序列中剔除,然后对第一时间序列重新排序,以获取第二时间序列,第二时间序列中包括当前总的编码个数以及每个编码的时间记录;根据预设的记录截取方式,从第二时间序列中截取预定数量个时间记录,根据预设的转换规则,将从第二时间序列中截取的每个时间记录转换成数值;根据预设的映射方式,将所转换的数值进行映射获取第二映射值,根据第二映射值与当前总的编码个数的余数,以及偏移量获取下一位幸运用户。

其中,在根据预设的映射方式,将所转换的数值进行映射获取第二映射值时,该预设的映射方式即为上述的映射方式,在此不再赘述。

作为示例,在获取一位幸运用户之后,已获取的幸运用户的数量p自增1,总的编码个数自减1;判断已获取的幸运用户的数量是否小于所需的幸运用户的数量,若小于,则继续,若等于,则结束。记本次所获取的幸运用户的时间记录为xr,假设已获取的幸运用户的数量p小于所需的幸运用户的数量q,那么,则在第一时间序列x1,x2,…,xm中将本次所获取的幸运用户的时间记录xr剔除,并重新对第一时间序列x1,x2,…,xm进行排序,获取第二时间序列xr+1,xr+2,…,xm,即,a[j]=a[j+1],r<j<m+1,然后根据预设的记录截取方式,从所获取的第二时间序列中截取n条时间记录,并重复执行数值转换单元230和幸运用户获取单元240,以获取下一位幸运用户。

需要说明的是,本发明提供的基于参与时间的幸运用户抽取方法及系统可以应用于电视节目、网络视频、网络推广活动、户外推广活动等需要与用户进行互动的场景。

此外,本发明提供的基于参与时间的幸运用户抽取方法及系统,通过获取一个时间样本便能够获取任意数量的所需幸运用户,且还能够公开透明的对参与用户进行幸运用户的抽取,从而极大提高用户参与活动的积极性。

如上参照附图以示例的方式描述了根据本发明的基于参与时间的幸运用户抽取方法及系统。但是,本领域技术人员应当理解,对于上述本发明所提出的基于参与时间的幸运用户抽取方法及系统,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。

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