一种数据选取方法及相关装置与流程

文档序号:11548730阅读:180来源:国知局
一种数据选取方法及相关装置与流程

本发明涉及数据处理技术领域,具体涉及一种数据选取方法及相关装置。



背景技术:

现有技术在服务器向终端推送数据的时候,通常需要根据具体场景需求为终端推送不同的数据,例如:在一些答题类游戏中,服务器通常向玩家推送一定数量的试题,试题的种类可以为选择题也可以为判断题,玩家通过选择正确的选项或者做出正确的判断从而获得相应的积分或经验值等。

为了增加游戏的趣味性同时又兼顾公平性,服务器在向玩家所在的终端推送试题或试题选项的时候,需要保证玩家在登录任何一个服务器时,同一时间看到的试题都是相同的,而不同时间看到的试题又是不同的,并且保证试题选项每次的顺序都要不同,基于此,对服务器所选择的数据的随机性提出了要求。



技术实现要素:

有鉴于此,本发明实施例提供一种数据选取方法及相关装置,能够保证所选取的数据的随机性。

为实现上述目的,本发明实施例提供如下技术方案:

一种数据选取方法,所述方法包括:

确定待选择数据集合,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号;

依据当前时间与初始时间的时间差值,生成随机数集合;

根据目标待选择数据的数量,从所述随机数集合中提取随机数,所提取的随机数的数量与所述目标待选择数据的数量相应;

根据所提取的随机数,从所述待选择数据集合中选取相应数据编号的待选择数据,得到目标待选择数据;

将所述目标待选择数据与所述当前时间关联。

一种数据选取装置,所述装置包括:

待选择数据集合确定模块,用于确定待选择数据集合,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号;

随机数集合生成模块,用于依据当前时间与初始时间的时间差值,生成随机数集合;

随机数提取模块,用于根据目标待选择数据的数量,从所述随机数集合中提取随机数,所提取的随机数的数量与所述目标待选择数据的数量相应;

目标待选择数据选取模块,用于根据所提取的随机数,从所述待选择数据集合中选取相应数据编号的待选择数据,得到目标待选择数据;

时间关联模块,用于将所述目标待选择数据与所述当前时间关联。

基于上述技术方案,本发明实施例中公开了一种数据选取方法及相关装置,通过确定待选择数据集合,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号;依据当前时间与初始时间的时间差值,生成随机数集合;根据目标待选择数据的数量,从所述随机数集合中提取随机数,所提取的随机数的数量与所述目标待选择数据的数量相应;根据所提取的随机数,从所述待选择数据集合中选取相应数据编号的待选择数据,得到目标待选择数据;将所述目标待选择数据与所述当前时间关联。从而针对不同的时间,生成随机数集合,依据随机数集合中随机数的随机性,选择不同的目标待选择数据,保障所选择的数据的随机性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的数据选取方法的系统架构示意图;

图2为本发明实施例提供的数据选取方法的信令流程图;

图3为本发明实施例提供的数据选取方法的流程图;

图4为本发明实施例提供的另一种数据选取方法的流程图;

图5为本发明实施例提供的一种游戏中的答题界面示意图;

图6为本发明实施例提供的又一种数据选取方法的流程图;

图7为本发明实施例提供的一种数据选取装置的结构框图;

图8为本发明实施例提供的一种数据选取装置的硬件结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种数据选取方法的系统架构,参照图1,该系统可以包括:客户端10,服务器20,其中,服务器20可以为集群服务器,架设在网络侧,客户端10可以装载在智能手机、平板电脑、笔记本电脑等用户设备上,其上安装有应用软件,应用软件可以为任意类型,比如游戏类应用软件、社交类应用软件、购物类应用软件等。

基于图1所示系统架构,图2示出了本发明实施例提供的数据选取方法的信令流程图,结合图1和图2所示,该流程可以包括:

步骤s10:客户端向服务器发送数据获取请求;

需要说明的是,例如在答题游戏场景中,客户端向服务器发送的数据获取请求可以为试题获取请求,还可以为试题选项获取请求,本发明实施例不做具体限定。

步骤s11:服务器确定接收到客户端发送的数据获取请求的时间;

步骤s12:服务器依据接收到客户端发送的数据获取请求的时间,选取与接收到客户端发送的数据获取请求的时间对应的目标待选择数据;

步骤s13:服务器将目标待选择数据发送至客户端。

需要说明的是,本发明实施例中服务器将接收到客户端发送的数据获取请求的时间确定为当前时间,具体是依据当前时间与初始时间的时间差值,选取与接收到客户端发送的数据获取请求的时间对应的目标待选择数据,并发送至客户端。从而保证客户端登录服务器后,同一时间从服务器中接收到的目标待选择数据是相同的,不同时间从服务器中接收到的目标待选择数据是不同的,从而保证了接收到的数据的随机性。具体的服务器执行的数据选取过程在以下实施例中详细介绍。

图3示出了一种数据选取方法的流程图,该方法可由服务器实现,参照图3,所述方法可以包括:

步骤s100、确定待选择数据集合;

需要说明的是,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号,数据编号表示的是一待选择数据在自身所在的待选择数据集合中的排列位置,各待选择数据可以按照数字编号从小到大的顺序进行编号,本发明实施例不做具体限定。

当待选择数据具有不同类型时,还可以将不同类型的待选择数据分别划分到不同类型的待选择数据集合中,一待选择数据集合对应唯一的一个集合编号;为各待选择数据集合中的每一待选择数据依序设置数据编号,一个待选择数据对应唯一的一个数据编号。数据编号表示的是一待选择数据在自身所在的待选择数据集合中的排列位置。

例如,对不同的待选择数据集合中的每一待选择数据分配数据编号的分配结果可以为:result=p1(a,b)+p2(c,d)+…+pn(x,y),其中,result为分配结果,p1,p2…pn为集合编号,a,b,c,d…x,y为不同待选择数据集合中的待选择数据。本发明实施例中可以为a,b,c,d…x,y各自分配一数据编号。

例如:答题类游戏中,服务器所要选择的试题种类可以为:文学类、科技类、养生类等,将不同类型的试题划分到不同试题集合中,一个试题集合对应唯一的一个试题集合编号,一道试题对应唯一的一个数据编号。

步骤s110、依据当前时间与初始时间的时间差值,生成随机数集合;

可选的,本发明实施例选取的初始时间可以为1970年1月1日0点,获取的当前时间与初始时间的时间差值可以精确到分钟,还可以精确到秒,本发明实施例不做具体限定。

可选的,本发明实施例中可以将当前时间与初始时间的时间差值作为随机数的种子,依据预设随机算法,生成随机数集合,由于随机数的种子确定之后,依据预设随机算法生成的随机数集合就是确定的,并且,随机数集合的中各个随机数具有随机性,依据随机数集合中的各随机数从各待选择数据中选取的目标待选择数据也就具有随机性。

可选的,本发明实施例中可以将当前时间与初始时间的时间差值作为随机数的种子,依据线性同余随机算法,生成随机数集合,本发明实施例中还可以采用其他随机算法生成随机数集合,具体随机算法本发明实施例不做具体限定。

需要说明的是,线性同余随机算法中的同余指的是:设m是一个正整数,如果两个整数a,b用m除,所得的余数相同,则称a,b对模m同余。

本发明实施例中采用的线性同余随机算法公式如下:

x[i+1]=(a*x[i]+c)modm;

i为大于等于0的正整数,需要说明的是,在m=2^q的条件下,参数a,c按如下选取,周期较大,概率统计特性好:

a=2^b+1=2^(log2(m)/2)+1=2^log2(sqrt(m))+1=sqrt(m)+1;b取q/2附近的数;c=(1/2+sqrt(3))*m,具体的,m=2^32,a=1103515245,c=12345。

通过将当前时间与初始时间的时间差值作为x[0],依次得到由x[0]、x[1]、x[2]、x[3]、.....构成的随机数集合,其中随机数集合中随机数的个数可以由技术人员依据选取的数据个数确定,本发明实施例不做具体限定。

步骤s120、根据目标待选择数据的数量,从所述随机数集合中提取随机数;

其中,所提取的随机数的数量与所述目标待选择数据的数量相应,具体的所提取的随机数的数量可以与标待选择数据的数量相同。

可选的,根据目标待选择数据的数量,按照所述随机数集合中随机数的顺序,依次提取一随机数,所提取的随机数的数量与所述目标待选择数据的数量相应。

步骤s130、根据所提取的随机数,从所述待选择数据集合中选取相应数据编号的待选择数据,得到目标待选择数据;

由于随机数具有随机性,依据依次提取的随机数,从待选择数据中选取的目标待选择数据则具有随机性。

步骤s140、将所述目标待选择数据与所述当前时间关联。

本发明实施例中是针对不同的时间选择不同的目标待选择数据,从而针对不同的时间,生成随机数集合,依据随机数集合中随机数的随机性,选择不同的目标待选择数据,保障所选择的数据的随机性。

通过本发明实施例中的上述技术方案,客户端接入到小区服务器中,可以由各小区服务器从数据库中获取目标待选择数据,并发送至各自所属的客户端,只要机器对时一致,不同客户端登录各小区服务器之后,无需一个中心数据服务器作统一管理,各小区服务器便能保证同一时刻各客户端获取到相同的目标待选择数据,不同时刻获取到不同的目标待选择数据。因此,本发明实施例技术方案无需考虑将不同小区服务器接入统一的一个中心数据服务器时的机器部署上的困难。

可选的,图4示出了另一种数据选取方法的流程图,该方法可由服务器实现,参照图4,所述方法可以包括:

步骤s200、确定待选择数据集合;

需要说明的是,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号。

步骤s210、依据当前时间与初始时间的时间差值,生成随机数集合;

步骤s220、根据目标待选择数据的数量,从所述随机数集合中提取随机数;

其中,所提取的随机数的数量与所述目标待选择数据的数量相应,具体的所提取的随机数的数量可以与标待选择数据的数量相同。

可选的,根据目标待选择数据的数量,按照所述随机数集合中随机数的顺序,依次提取一随机数,所提取的随机数的数量与所述目标待选择数据的数量相应。

步骤s230、获取所述待选择数据集合中所有待选择数据个数的总和,作为取模运算对象;

步骤s240、将依次提取的各随机数分别对所述取模运算对象进行取模运算,得到各随机数对应的取模结果;

将依次提取的各随机数分别对所述待选择数据个数的总和进行取模运算的过程为:将依次提取的各随机数分别除以待选择数据个数的总和,得到的余数作为各随机数对应的取模结果。

步骤s250、确定与取模结果对应的数据编号的待选择数据,作为目标待选择数据;

将依次提取的各随机数分别除以待选择数据个数的总和,得到的余数对应的具体数值作为目标待选择数据的数据编号。

步骤s260、将所述目标待选择数据与所述当前时间关联。

本发明实施例中针对不同的时间,生成随机数集合,依据随机数集合中随机数的随机性,从所有待选择数据中随机选取目标待选择数据,保障所选择的目标待选择数据的随机性。

下面以一个具体的游戏中答题的场景详细说明上述实施例中公开的技术方案:

请参照图5所示的一款游戏中的答题界面,答题界面中显示乾坤问答每日开放四次,参与可获得经验、绑银及物品奖励。玩家参加了乾坤问答活动后,界面上的题目每次都要不同,答题的选项每次的顺序都要不同。从图5所示的答题界面可知,答题任务总共有10道题,每道题有a、b、c、d四个选。待选择试题题库中有100道题,分别按照从1到100的顺序进行编号,调用本发明实施例中的技术方案,在不同时刻随机抽取10道题的过程如下:

将活动开始时间作为当前时间,依据当前时间与初始时间的时间差值,生成随机数集合:{1,26,59,30,98,5,9,33,76,68};将上述各随机数分别对100进行取模运算,得到各随机数对应的取模结果分别为:1,26,59,30,98,5,9,33,76,68,则上述各个取模结果则分别对应待选择试题题库中的试题编号,从而从题库中调取出试题编号分别为1,26,59,30,98,5,9,33,76,68的试题作为被选中的试题发送至客户端,该次被选中的试题作为乾坤问答活动开始时刻的试题集。

针对试题的选项,由于仅有四个选项,在选项题库中可以针对每道题的选项分别进行数字编号,如0、1、2、3,依据当前时间与初始时间的时间差值,生成随机数集合:{3、46、91、4},将上述各随机数分别对4进行取模运算,得到各随机数对应的取模结果分别为:3,2,1,0,则上述各个取模结果则分别对应选项题库中的选项编号,从而从选项题库中调取出选项编号分别为3,2,1,0的选项作为被选中的选项顺序发送至客户端,对于每道试题的选项顺序采取上述相同的选取方法。

可选的,本发明实施例中还可以结合各待选择数据被选中的权重值定制不同的数据选取方法,图6示出了另一种数据选取方法的流程图,该方法可由服务器实现,参照图6,所述方法可以包括:

步骤s300、确定待选择数据集合;

需要说明的是,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号。

步骤s310、依据当前时间与初始时间的时间差值,生成随机数集合;

步骤s320、根据目标待选择数据的数量,从所述随机数集合中提取随机数;

其中,所提取的随机数的数量与所述目标待选择数据的数量相应,具体的所提取的随机数的数量可以与标待选择数据的数量相同。

可选的,根据目标待选择数据的数量,按照所述随机数集合中随机数的顺序,依次提取一随机数,所提取的随机数的数量与所述目标待选择数据的数量相应。

步骤s330、对所述待选择数据集合中各待选择数据分别配置一概率值;

所述概率值为所述待选择数据被选中的权重值,需要说明的是,本发明实施例中可以为各待选择数据分别配置相对于所有待选择数据来说被选中的权重值,还可以为各待选择数据分别配置相对于自身所在待选择数据集合中所有待选择数据来说被选中的权重值,还可以为各待选择数据分别配置相对于基准值来说被选中的权重值,例如相对于基准值100来说被选中的权重值。

步骤s340、获取所述待选择数据集合中所有待选择数据各自对应的概率值总和;

步骤s350、将所有待选择数据各自对应的概率值总和的预设倍数作为取模运算对象;

具体的,可以将所有待选择数据各自对应的概率值总和的100倍作为取模运算对象,本发明实施例不做具体限定。

步骤s360、将依次提取的各随机数分别对所述取模运算对象进行取模运算,得到各随机数对应的取模结果;

将依次提取的各随机数分别对所述取模运算对象进行取模运算的过程为:将依次提取的各随机数分别除以取模运算对象,得到的余数作为各随机数对应的取模结果。

步骤s370、确定与取模结果对应的数据编号的待选择数据,作为目标待选择数据;

步骤s380、将所述目标待选择数据与所述当前时间关联。

下面,具体说明上述本发明实施例中公开的上述数据选取方法的具体执行过程:

可以为n个待选择数据分别配置一概率值:wn%,每个概率值对应一概率值区间;

将n个待选择数据各自对应的概率值总和的100倍作为取模运算对象,则取模运算对象vt=w1+w2+…+wn;

取一个随机数m,对vt做取模运算,得到取模结果vmod=m%vt;

确定取模结果vmod值所在的概率值区间,将取模结果vmod值所在的概率值区间对应的概率值作为目标概率值,获取目标概率值对应的数据编号的待选择数据,作为目标待选择数据。针对每个随机数,重复上述过程,直到获取预定个数个目标待选择数据。

可选的,当为n个待选择数据分别配置一相同概率值w%,并且,n个待选择数据的概率值w%之和nw%为1的情况下,则将n个待选择数据各自对应的概率值总和的100倍作为取模运算对象,则取模运算对象vt=100;取一个随机数m,对100做取模运算,得到取模结果vmod=m%100;确定取模结果对应的概率值作为目标概率值,针对每个随机数,重复上述过程,直到获取预定个数个目标待选择数据。

需要说明的是,当目标概率值对应的数据编号的待选择数据为至少两个的情况,即一目标概率值对应的数据编号的待选择数据不唯一的情况,则将获取的此待选择数据舍弃,重新按照上述方法选取目标待选择数据。

下面对本发明实施例提供的数据选取装置进行介绍,下文描述的数据选取装置,可与上文描述的数据选取方法相互对应参照。下文描述的数据选取装置,可以认为是服务器为实现本发明实施例提供的数据选取方法,所需设置的功能模块架构。

图7为本发明实施例提供的数据选取装置的结构框图,该装置可应用于服务器,参照图7,该装置可以包括:

待选择数据集合确定模块100,用于确定待选择数据集合,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号;

随机数集合生成模块110,用于依据当前时间与初始时间的时间差值,生成随机数集合;

可选的,本发明实施例中可以将当前时间与初始时间的时间差值作为随机数的种子,依据预设随机算法,生成随机数集合,由于随机数的种子确定之后,依据预设随机算法生成的随机数集合就是确定的,并且,随机数集合的中各个随机数具有随机性,依据随机数集合中的各随机数从各待选择数据中选取的目标待选择数据也就具有随机性。

随机数提取模块120,用于根据目标待选择数据的数量,从所述随机数集合中提取随机数,所提取的随机数的数量与所述目标待选择数据的数量相应;

目标待选择数据选取模块130,用于根据所提取的随机数,从所述待选择数据集合中选取相应数据编号的待选择数据,得到目标待选择数据;

时间关联模块140,用于将所述目标待选择数据与所述当前时间关联。

本发明实施例中是针对不同的时间选择不同的目标待选择数据,从而针对不同的时间,生成随机数集合,依据随机数集合中随机数的随机性,选择不同的目标待选择数据,保障所选择的数据的随机性。

所述随机数集合生成模块的一种可选结构包括:

随机数集合生成子模块,用于将当前时间与初始时间的时间差值作为随机数的种子,依据预设随机算法,生成随机数集合。

所述随机数集合生成子模块的一种可选结构包括:

线性同余随机算法模块,用于将当前时间与初始时间的时间差值作为随机数的种子,依据线性同余随机算法,生成随机数集合。

所述随机数提取模块的一种可选结构包括:

随机数提取子模块,用于根据目标待选择数据的数量,按照所述随机数集合中随机数的顺序,依次提取一随机数,所提取的随机数的数量与所述目标待选择数据的数量相应。

所述目标待选择数据选取模块的一种可选结构包括:

第一取模运算对象选取模块,用于获取所述待选择数据集合中所有待选择数据个数的总和,作为取模运算对象;

第一取模运算模块,用于将依次提取的各随机数分别对所述取模运算对象进行取模运算,得到各随机数对应的取模结果;

第一目标待选择数据确定模块,用于确定与取模结果对应的数据编号的待选择数据,作为目标待选择数据。

还包括:

概率值分配模块,对所述待选择数据集合中各待选择数据分别配置一概率值,所述概率值为所述待选择数据被选中的权重值。

所述目标待选择数据选取模块的一种可选结构包括:

概率值总和获取模块,用于获取所述待选择数据集合中所有待选择数据各自对应的概率值总和;

第二取模运算对象选取模块,用于将所有待选择数据各自对应的概率值总和的预设倍数作为取模运算对象;

第二取模运算模块,用于将依次提取的各随机数分别对所述取模运算对象进行取模运算,得到各随机数对应的取模结果;

第二目标待选择数据确定模块,用于确定与取模结果对应的数据编号的待选择数据,作为目标待选择数据。

还包括:

数据获取请求接收模块,用于接收客户端发送的数据获取请求;

接收时间确定模块,用于确定接收到客户端发送的数据获取请求的时间;

目标待选择数据发送模块,用于将与接收到客户端发送的数据获取请求的时间对应的目标待选择数据发送至客户端。

本发明实施例还提供一种服务器,该服务器可以包括上述所述的数据选取装置。

可选的,图8示出了服务器的硬件结构,参照图8,该服务器可以包括:

处理器1,通信接口2,存储器3和通信总线4;

其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;

可选的,通信接口2可以为通信模块的接口,如gsm模块的接口;

处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

其中,处理器1具体用于:

确定待选择数据集合,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号;

依据当前时间与初始时间的时间差值,生成随机数集合;

根据目标待选择数据的数量,从所述随机数集合中提取随机数,所提取的随机数的数量与所述目标待选择数据的数量相应;

根据所提取的随机数,从所述待选择数据集合中选取相应数据编号的待选择数据,得到目标待选择数据;

将所述目标待选择数据与所述当前时间关联。

综上所述:

本发明实施例中公开了一种数据选取方法及相关装置,通过确定待选择数据集合,所述待选择数据集合包括多个待选择数据,且每个待选择数据对应一个数据编号;依据当前时间与初始时间的时间差值,生成随机数集合;根据目标待选择数据的数量,从所述随机数集合中提取随机数,所提取的随机数的数量与所述目标待选择数据的数量相应;根据所提取的随机数,从所述待选择数据集合中选取相应数据编号的待选择数据,得到目标待选择数据;将所述目标待选择数据与所述当前时间关联。从而针对不同的时间,生成随机数集合,依据随机数集合中随机数的随机性,选择不同的目标待选择数据,保障所选择的数据的随机性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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