对象筛选方法、装置、介质、电子设备及产品与流程
未命名
07-23
阅读:85
评论:0
1.本技术涉及计算机技术领域,具体涉及一种对象筛选方法、装置、介质、电子设备及产品。
背景技术:
2.对象筛选即从对象集合中筛选出目标对象的任务,例如,在抽奖业务中会从抽奖池中的对象中抽选出一些目标对象。
3.目前,对象筛选的方式通常是设备将候选的对象集全部加载至内存中后,然后从对象集中进行全量随机抽样,这种全部加载及全量随机抽样的方式,设备内存占用高且计算量大,设备性能损耗较高。
技术实现要素:
4.本技术实施例提供一种对象筛选方法及相关装置,可以有效降低对象筛选时设备的内存占用及计算量,降低设备性能损耗。
5.为解决上述技术问题,本技术实施例提供以下技术方案:
6.根据本技术的一个实施例,一种对象筛选方法,该方法包括:从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象。
7.根据本技术的一个实施例,一种对象筛选装置,其包括:第一加载模块,用于从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;第二加载模块,用于将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;替换模块,用于在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;确定模块,用于若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象。
8.在本技术的一些实施例中,在本技术的一些实施例中,所述装置还包括目标对象确定模块,目标对象确定模块包括:数值确定单元,用于根据各轮次下所述内存中的对象个数,随机确定第一个数个目标数值,所述第一个数为各轮次下所述候选池内的对象个数;对象确定单元,用于从所述目标池内确定所述目标数值对应的对象,得到所述目标池内的所述目标对象。
9.在本技术的一些实施例中,所述目标池内的每个对象对应一个编号,所述目标数值为小于所述编号中最大编号的值;所述对象确定单元,用于:从所述目标池内确定所述目标数值对应的编号,得到目标编号;将所述目标池内所述目标编号对应的对象,确定为所述
目标数值对应的对象。
10.在本技术的一些实施例中,所述第一加载模块,用于:获取预定数目,所述预定数目为期望筛选出的对象的数目;从所述存储库中的对象中随机确定所述预定数目个对象,作为目标加载对象;将所述目标加载对象加载至所述目标池。
11.在本技术的一些实施例中,所述目标池内包括预定数目个对象;所述第二加载模块,用于:将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池,其中,各所述轮次下加载目标数目个对象至所述候选池,各所述轮次下所述内存中的对象个数为所述目标数目与所述预定数目之和。
12.在本技术的一些实施例中,所述确定模块用于:若所述存储库内未加载至所述内存的对象的个数为零,则停止加载对象至所述候选池的轮次,并将停止加载对象至所述候选池的轮次时所述目标池内的对象确定为筛选出的对象。
13.根据本技术的另一实施例,一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行本技术实施例所述的方法。
14.根据本技术的另一实施例,一种电子设备,包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行本技术实施例所述的方法。
15.根据本技术的另一实施例,一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例所述的各种可选实现方式中提供的方法。
16.本技术实施例中,从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象。
17.以这种方式,首先加载一些对象至内存中的目标池,对于存储库中未加载至内存的对象,通过至少两个轮次加载至内存中的候选池,进而,各轮次下内存中不会保存全量对象,内存占用低,且进一步的,各轮次下根据内存中的对象个数抽样确定目标对象,并用候选池中对象替换抽样出的目标对象,将最终符合停止加载条件时的目标池中对象确定为筛选出的对象,以蓄水池式抽样方式筛选出最终目标池中对象,筛选过程计算量低。进而,整体上有效降低对象筛选时设备的内存占用及计算量,降低设备性能损耗。
附图说明
18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1示出了一种可以应用本技术实施例的系统的示意图。
20.图2示出了根据本技术的一个实施例的对象筛选方法的流程图。
21.图3a至图3c示出了根据本技术的一个实施例的终端界面变化图。
22.图4示出了应用本技术实施例的一种场景下进行对象筛选的流程图。
23.图5示出了根据本技术的一个实施例的对象加载的流程图。
24.图6示出了根据本技术的一个实施例的对象加载的流程图。
25.图7示出了根据本技术的另一个实施例的对象筛选装置的框图。
26.图8示出了根据本技术的一个实施例的电子设备的框图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.在以下的说明中,本技术的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本技术原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
29.需要说明的是,在本技术的具体实施方式中,涉及到以存储库中对象相关的数据,当本技术以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
30.图1示出了一种可以应用本技术实施例的系统100的示意图。如图1所示,系统100可以包括设备101及服务器102。可以理解,本技术的实施例可以应用在其他可以应用本技术实施例的系统中。
31.设备101可以是终端或服务器,作为设备101的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,作为设备101的终端可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、vr/ar设备、智能手表以及计算机等等。
32.服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
33.本示例的一种实施方式中,设备101可以:从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;若所述存储库内未加载至所述内存的对象符合停止加载条件,将所
述目标池内的对象确定为筛选出的对象。
34.其中,存储库可以是位于设备101中内存之外的库,例如存储库可以是服务器102或其他数据库(如设备101中的数据库或其他设备中的数据库等)。存储库中的对象对应于游戏玩家或其他对象,其他对象例如地图车联网领域的相关平台的用户。
35.一些实施例中,设备101可以将在确定筛选出的对象后,生成筛选记录上传至区块链网络中进行存储。
36.进一步的,在将所述目标池内的对象确定为筛选出的对象之后,设备101还可以对筛选出的对象分配目标资源,例如,将筛选出的对象作为中奖对象,对中奖对象分配道具礼包。
37.图2示意性示出了根据本技术的一个实施例的对象筛选方法的流程图。该对象筛选方法的执行主体可以是任意的设备,例如图1所示的设备101。
38.如图2所示,该对象筛选方法可以包括步骤s210至步骤s240。
39.步骤s210,从存储库中加载至少一个对象至目标池,目标池位于内存中,内存中还包括候选池;步骤s220,将存储库中未加载至内存的对象,通过至少两个轮次加载至候选池;步骤s230,在各轮次下,利用候选池内对象替换目标池内的目标对象后将候选池置空,目标对象为根据各轮次下内存中的对象个数确定的;步骤s240,若存储库内未加载至内存的对象符合停止加载条件,将目标池内的对象确定为筛选出的对象。
40.存储库中可以存储有对象集合,对象集合中包括至少一个对象,对象以对象数据的形式存储于存储库中,对象数据例如对象账号和/或对象标识等可以唯一描述对象的信息。
41.内存可以包括候选池及目标池,其中,可以用数组的数据结构作为候选池及目标池,也可以是通过其它数据存储结构构建目标池及候选池。
42.从存储库中加载至少一个对象至目标池,例如,存储库中的对象集合中有x个对象,可以从x个对象中随机抽取n个对象,并将抽取的n个对象加载至内存,然后将n个对象中的对象加入目标池中。此时,存储库中为未加载至目内存的对象即x-n个对象。
43.针对未加载至目标池的x-n个对象通过至少两个轮次加载至候选池,在各轮次下,利用候选池内对象替换目标池内的目标对象后将候选池置空,进而各轮次下内存中的对象个数为各轮次下候选池与目标池中对象的总和。
44.例如,将未加载至目标池的x-n个对象通过至少两个轮次加载至候选池之前,内存中仅包括目标池中的m个对象,第1个轮次下从x-n个对象加载r个对象至候选池,进而,该轮次下内存中对象个数为m+r个,然后,第1轮次下利用加载的r个对象替换目标对象后,将候选池中数据删除使候选池置空,第2轮会加载对象至置空后的候选池,若第2轮又加载r个对象至候选池,此时,第2轮次下内存中对象个数又变为m+r个。
45.通过持续加载与替换,可以将存储库内的对象集合中对象不断加载至内存中进行筛选,若存储库内未加载至内存的对象符合停止加载条件,将此时最终位于目标池内的对象确定为筛选出的对象。
46.以这种方式,基于步骤s210至步骤s240,首先加载一些对象至内存中的目标池,对于存储库中未加载至内存的对象,通过至少两个轮次加载至内存中的候选池,进而,各轮次下内存中不会保存全量对象,内存占用低,且进一步的,各轮次下根据内存中的对象个数抽
样确定目标对象,并用候选池中对象替换抽样出的目标对象,将最终符合停止加载条件时的目标池中对象确定为筛选出的对象,以蓄水池式抽样的方式筛选出最终目标池中对象,筛选过程计算量低。进而,整体上有效降低对象筛选时设备的内存占用及计算量,降低设备性能损耗。
47.下面描述进行对象筛选时,所进行的各步骤的具体过程。
48.在步骤s210中,从存储库中加载至少一个对象至目标池,目标池位于内存中,内存中还包括候选池。
49.从存储库中加载至少一个对象至目标池,例如,存储库中的对象集合中有x个对象,可以从x个对象中随机抽取n个对象,并将抽取的n个对象加载至内存,然后将n个对象中的对象加入目标池中。此时,存储库中为未加载至目内存的对象即x-n个对象。
50.一种实施例中,将n个对象中的所有对象加入目标池中,此时步骤s310,从存储库中加载至少一个对象至目标池,包括:获取预定数目,预定数目为期望筛选出的对象的数目;从存储库中的对象中随机确定预定数目个对象,作为目标加载对象;将目标加载对象加载至目标池。
51.预定数目为期望筛选出的对象的数目,即预定数目为对象筛选时想要筛选出的对象的数目,例如进行资源分配时对象的名额为m个,则预定数目即m个,从存储库中的x个对象随机抽取n个对象,n等于m,将抽取的n个对象作为目标加载对象加入至目标池即可。
52.进一步的,目标池可以是目标数组,从将确定的对象加载至目标池可以包括:可以将确定的对象加载至内存中的候选池,然后,随机将候选池中的预定数目个对象加入目标数组,这样每个加入目标数组的对象对应一个数组下标,该数组下标可以作为对象的编号。
53.一些实施例中,将n个对象中的部分对象加入目标池中,此时步骤s310,从存储库中加载至少一个对象至目标池,包括:从存储库中的对象中,随机确定预定数目(如m个)加替换数目(如p个)个对象,此时,n等于m+p,然后将确定的对象加载至内存中的候选池,然后从候选池内的对象中随机抽取替换数目(如p个)个对象删除,并将剩余的m个对象加入至目标池即可,使得目标池中加载预定数目个对象。
54.同样的,目标池可以是目标数组,可以随机将候选池中的预定数目个对象加入目标数组,这样每个加入目标数组的对象对应一个数组下标,该数组下标可以作为对象的编号。
55.进一步的,步骤s220之前可以将加载至内存中的至少一个对象从存储库中删除,例如将n个对象加载至内存中后,将这n个对象从存储库中删除,进而,存储库中剩余的对象即未加载至目标池的对象,这样的话后续步骤中便可以不必辨识哪些是未加载的对象,而高效的直接从剩余的对象(即未加载至目标池的对象)中加载对象。
56.在步骤s220中,将存储库中未加载至目标池的对象,通过至少两个轮次加载至候选池。
57.在步骤s230中,在各轮次下,利用候选池内对象替换目标池内的目标对象后将候选池置空,目标对象为根据各轮次下内存中的对象个数确定的。
58.针对未加载至目标池的x-n个对象通过至少两个轮次加载至候选池,在各轮次下,利用候选池内对象替换目标池内的目标对象后将候选池置空,进而各轮次下内存中的对象个数为各轮次下候选池与目标池中对象的总和。
59.例如,将未加载至内存的x-n个对象通过至少两个轮次加载至候选池之前,内存中仅包括目标池中的m个对象,第1个轮次下从x-n个对象加载r个对象至候选池,进而,该轮次下内存中对象个数为m+r个,然后,第1轮次下利用加载的r个对象替换目标对象后,将候选池中数据删除使候选池置空,第2轮会加载对象至置空后的候选池,若第2轮又加载r个对象至候选池,此时,第2轮次下内存中对象个数又变为m+r个。
60.进一步的,一些实施例中,各轮次下将对象加载至候选池后,可以将加载至候选池的对象从存储库中删除,进而下一轮次中可以直接从剩余的对象中进行对象加载,进一步提升效率。例如,第1轮次下从x-n个对象中加载1个至候选池后,可以将加载的该1个对象从存储库中删除。
61.进一步的,一些实施方式中各轮次下加载至候选池的对象的个数相同,例如第1至第t轮次中每个轮次下加载1个对象至候选池,一些其他实施方式中,各轮次下加载至候选池的对象的个数可以不同。
62.一种实施例中,目标池内包括预定数目个对象;步骤s320,将存储库中未加载至目标池的对象,通过至少两个轮次加载至候选池,包括:将存储库中未加载至目标池的对象,通过至少两个轮次加载至候选池,其中,各轮次下加载目标数目个对象至候选池,各轮次下内存中的对象个数为目标数目与预定数目之和。
63.例如,目标数目为r,预定数目为m,则第1至第t轮次中每个轮次下均加载r个对象至候选池,由于每个轮次下最后将候选池置空,进而,各轮次下内存中的对象个数为目标数目与预定数目之和,也即各轮次下内存中的对象个数为各轮次下候选池与目标池中对象的总和。
64.一种实施例中,目标池内包括预定数目个对象;步骤s320,将存储库中未加载至目标池的对象,通过至少两个轮次加载至候选池,包括:将存储库中未加载至目标池的对象,通过至少两个轮次加载至候选池,其中,各轮次下加载对应于各轮次的特定数目个对象至候选池,各轮次下内存中的对象个数为特定数目与预定数目之和。
65.例如,对应于各轮次的特定数目可以根据需求设定,例如第1轮次下为r,第2轮次下为r+1等,预定数目为m,则第1至第t轮次中每个轮次下可以加载特定数目个对象至候选池,由于每个轮次下最后将候选池置空,进而,各轮次下内存中的对象个数为特定数目与预定数目之和,也即各轮次下内存中的对象个数为各轮次下候选池与目标池中对象的总和。
66.一种实施例中,在步骤s230中利用候选池内对象替换目标池内的目标对象后将候选池置空之前,还包括:
67.根据各轮次下内存中的对象个数,随机确定第一个数个目标数值,第一个数为各轮次下候选池内的对象个数;从目标池内确定目标数值对应的对象,得到目标池内的目标对象。
68.各轮次下根据内存中的对象个数(例如预定数目与目标数目之和或预定数目与特定数目之和)可以随机确定第一个数个目标数值,第一个数为候选池中对象的个数(即目标数目或特定数目),第一个数例如1,每个轮次下可以确定一个目标数值。随机确定目标数值后,若目标数值与目标池内某个对象对应,该对应的对象即随机抽取到的待替换的目标对象。这样可以基于将候选池中对象来随机替换目标池中目标对象。
69.一种实施例中,目标池内的每个对象对应一个编号,目标数值为小于编号中最大
编号的值;从目标池内确定目标数值对应的对象,包括:从目标池内确定目标数值对应的编号,得到目标编号;将目标池内目标编号对应的对象,确定为目标数值对应的对象。
70.例如,目标池为目标数组,目标数组中每个对象的编号可以为数组下标,目标数组中有m个对象时,目标数组内的对象的编号为从1至m。根据各轮次下内存中的对象个数随机确定第一个数个目标数值时,目标数值可以为从大于等于1且小于等于m的整数,进而,可以确定目标数值对应的编号得到目标编号,例如目标数值为k,此时可以将编号为k的对象确定为目标对象。
71.在步骤s240中,若存储库内未加载至内存的对象符合停止加载条件,将目标池内的对象确定为筛选出的对象。
72.通过持续加载与替换,可以将存储库内的对象集合中对象不断加载至内存中进行筛选,若存储库内未加载至内存的对象符合停止加载条件,将此时最终位于目标池内的对象确定为筛选出的对象。
73.一种实施例中,步骤s240,若存储库内未加载至内存的对象符合停止加载条件,将目标池内的对象确定为筛选出的对象,包括:若存储库内未加载至内存的对象的个数为零,则停止加载对象至候选池的轮次,并将停止加载对象至候选池的轮次时目标池内的对象确定为筛选出的对象。
74.该实施例下,停止加载条件为存储库内未加载至内存的对象的个数为零,符合该条件时存储库中所有的对象被筛选完毕,得到最终的目标池,目标池中的对象即抽取出的最终对象。
75.一种实施例中,步骤s240,若存储库内未加载至内存的对象符合停止加载条件,将目标池内的对象确定为筛选出的对象,包括:若存储库内未加载至内存的对象的个数为小于预定比例,则停止加载对象至候选池的轮次,并将停止加载对象至候选池的轮次时目标池内的对象确定为筛选出的对象。预定比例可以是未加载至内存的对象的个数与存储库中对象总数之比。
76.根据上述实施例所描述的方法,以下将结合应用场景举例作进一步详细说明。该场景下相关名词的含义与前述实施例中相同,具体可以参考前述实施例中的说明。该应用场景下以游戏场景下游戏玩家抽取道具礼包时,游戏系统中抽取中奖的游戏玩家为例进行说明,该场景下应用本技术前述的实施例进行抽取待分配礼包的目标对象。
77.该场景下,存储库中每个对象可以对应一个游戏玩家,该场景下游戏玩家参与抽奖时的一种终端界面变换图如图3a至图3c所示,该场景下“对象筛选”的流程如图4所示。
78.参与图3a至图3c,图3a中示出游戏玩家请求参与区服抽奖时的终端界面,如图3a所示,游戏玩家的终端界面中可以显示“已参与抽奖玩家数x,此次抽奖将抽出m名玩家获得以下道具礼包”,终端界面中“xxx道具礼包”的相关内存,以及“参与抽奖”的控件。用户点击“参与抽奖”的控件后,游戏系统可以对游戏玩家进行审核,如果审核通过可以将申请的玩家的账号数据加入“存储库”内参与抽奖玩家中,形成存储库中的对象集合。
79.图3b中示出游戏玩家请求参与区服抽奖后,游戏系统中抽取中奖的玩家后,中奖游戏玩家的终端界面。该终端界面中可以显示“中奖名单(例如e,j)”,以及提示语“恭喜e、j玩家中奖,将获得xxx礼包道具”,以及“参与下轮抽奖”的控件。
80.图3c中示出游戏玩家请求参与区服抽奖后,游戏系统中抽取中奖的玩家后,未中
奖游戏玩家的终端界面。该终端界面中可以显示“中奖名单(例如e,j)”,以及提示语“很遗憾您未中奖,再接再厉哦~”,以及“参与下轮抽奖”的控件。用户点击参与抽奖后可以参与下一次的道具抽奖。
81.其中,参阅图4,游戏系统中设备抽取中奖的玩家的步骤可以包括步骤s310至步骤s320。设备中包括内存,内存中包括抽奖池(即候选池)及中奖池(即目标池)。
82.步骤s310,加载对象至中奖池:从存储库中加载至少一个对象至中奖池。
83.从存储库中加载至少一个对象至中奖池,包括:获取预定数目,预定数目为期望筛选出的对象的数目;从存储库中的对象中,随机确定预定数目个对象;将确定的对象加载至中奖池。
84.预定数目为期望筛选出的对象的数目,即预定数目为对象筛选时想要筛选出的对象的数目,例如进行资源分配时对象的名额为m个,则预定数目即m个,从存储库中的x个对象随机抽取n个对象,n等于m,将抽取的n个对象加入至中奖池即可,未加载至目标池的对象为x-n个对象。该中奖池的对象容量大小也可以为预定数目。
85.中奖池可以是目标数组,“将确定的对象加载至中奖池”可以包括:可以将确定的对象加载至内存中的抽奖池,然后,随机将抽奖池中的预定数目个对象加入目标数组,这样每个加入目标数组的对象对应一个数组下标,该数组下标可以作为对象的编号。
86.如图5所示,从存储库中确定的对象包括a和c,首先将a和c加载至内存中的抽奖池,然后从抽奖池随机将a和c加入目标数组(即中奖池)。进一步的,步骤s320之前可以将加载至内存中的至少一个对象从存储库中删除,例如将a和c从存储库中删除,进而,存储库中剩余的对象即步骤s310中未加载至内存的对象(例如b、c及d等)。
87.步骤s320,加载对象至抽奖池:将存储库中未加载至内存的对象,通过至少两个轮次加载至抽奖池。各轮次下将对象加载至抽奖池后,可以将加载至抽奖池的对象从存储库中删除,例如,参阅图6,若第1轮次加载至抽奖池的对象为b,则从存储库中可以删除b对象的数据。
88.步骤s330,确定目标对象:根据各轮次下内存中的对象个数,随机确定第一个数个目标数值,第一个数为各轮次下候选池内的对象个数;从目标池内确定目标数值对应的对象,得到目标池内的目标对象。
89.目标池内的每个对象对应一个编号,目标数值为小于编号中最大编号的值;从目标池内确定目标数值对应的对象,包括:从目标池内确定目标数值对应的编号,得到目标编号;将目标池内目标编号对应的对象,确定为目标数值对应的对象。
90.目标池为目标数组,目标数组中每个对象的编号可以为数组下标,目标数组中有m个对象时,目标数组内的对象的编号为从1至m。根据各轮次下内存中的对象个数随机确定第一个数个目标数值时,目标数值可以为从大于等于1且小于等于m的整数,进而,可以确定目标数值对应的编号得到目标编号,例如目标数值为k,此时可以将编号为k的对象确定为目标对象,参阅图6,k等于1时,目标对象为a。
91.步骤s340,替换目标对象并清空抽奖池:在各轮次下,利用抽奖池内对象替换中奖池内的目标对象后将抽奖池置空。
92.针对未加载至中奖池的x-n个对象通过至少两个轮次加载至抽奖池,在各轮次下,利用抽奖池内对象替换中奖池内的目标对象后将抽奖池置空,进而各轮次下内存中的对象
个数为各轮次下抽奖池与中奖池中对象的总和。
93.例如,将未加载至内存的x-n个对象通过至少两个轮次加载至抽奖池之前,内存中仅包括中奖池中的m个对象,第1个轮次下从x-n个对象加载r个对象至抽奖池,进而,该轮次下内存中对象个数为m+r个,然后,第1轮次下利用加载的r个对象替换目标对象后,将抽奖池中数据删除使抽奖池置空,第2轮会加载对象至置空后的抽奖池,若第2轮又加载r个对象至抽奖池,此时,第2轮次下内存中对象个数又变为m+r个。
94.例如,参阅图6,若第1轮次加载至抽奖池的对象为b,目标对象为a,此时可以用b替换中奖池中a,然后将b的数据从抽奖池中删除。
95.步骤s350,存储库中对象是否为空:每个轮次完成后,可以判断存储库中对象是否为空,即判断存储库中对象集合中对象是否加载完毕。
96.步骤s360,抽奖结束:若存储库内未加载至内存的对象符合停止加载条件,将中奖池内的对象确定为筛选出的对象(即中奖的对象)。若存储库内未加载至内存的对象符合停止加载条件,将中奖池内的对象确定为筛选出的对象,包括:若存储库内未加载至内存的对象的个数为零(即存储库中对象为空),则停止加载对象至抽奖池的轮次,并将停止加载对象至抽奖池的轮次时中奖池内的对象确定为筛选出的对象。
97.步骤s370,若存储库中对象不为空,则继续执行步骤s320至步骤s360。
98.以这种方式,通过应用本技术的前述实施例,在游戏玩家抽奖时,首先加载一些对象至内存中的中奖池,对于存储库中未加载至内存的对象,通过至少两个轮次加载至内存中的抽奖池,进而,各轮次下内存中不会保存全量对象,内存占用低,且进一步的,各轮次下根据内存中的对象个数抽样确定目标对象,并用抽奖池中对象替换抽样出的目标对象,将最终符合停止加载条件时的中奖池中对象确定为筛选出的对象,以蓄水池式抽样的方式筛选出最终中奖池中对象,筛选过程计算量低。进而,整体上有效降低对象筛选时设备的内存占用及计算量,降低设备性能损耗。
99.为便于更好的实施本技术实施例提供的对象筛选方法,本技术实施例还提供一种基于上述对象筛选方法的对象筛选装置。其中名词的含义与上述对象筛选方法中相同,具体实现细节可以参考方法实施例中的说明。图7示出了根据本技术的一个实施例的对象筛选装置的框图。
100.如图7所示,对象筛选装置400中可以包括第一加载模块410、第二加载模块420、替换模块430及确定模块440。
101.第一加载模块410可以用于从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;第二加载模块420可以用于将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;替换模块430可以用于在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;确定模块440可以用于若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象。
102.在本技术的一些实施例中,所述装置还包括目标对象确定模块,目标对象确定模块包括:数值确定单元,用于根据各轮次下所述内存中的对象个数,随机确定第一个数个目标数值,所述第一个数为各轮次下所述候选池内的对象个数;对象确定单元,用于从所述目
标池内确定所述目标数值对应的对象,得到所述目标池内的所述目标对象。
103.在本技术的一些实施例中,所述目标池内的每个对象对应一个编号,所述目标数值为小于所述编号中最大编号的值;所述对象确定单元,用于:从所述目标池内确定所述目标数值对应的编号,得到目标编号;将所述目标池内所述目标编号对应的对象,确定为所述目标数值对应的对象。
104.在本技术的一些实施例中,所述第一加载模块410,用于:获取预定数目,所述预定数目为期望筛选出的对象的数目;从所述存储库中的对象中随机确定所述预定数目个对象,作为目标加载对象;将所述目标加载对象加载至所述目标池。
105.在本技术的一些实施例中,所述目标池内包括预定数目个对象;所述第二加载模块420,用于:将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池,其中,各所述轮次下加载目标数目个对象至所述候选池,各所述轮次下所述内存中的对象个数为所述目标数目与所述预定数目之和。
106.在本技术的一些实施例中,所述确定模块440用于:若所述存储库内未加载至所述内存的对象的个数为零,则停止加载对象至所述候选池的轮次,并将停止加载对象至所述候选池的轮次时所述目标池内的对象确定为筛选出的对象。
107.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
108.此外,本技术实施例还提供一种电子设备,该电子设备可以为终端或者服务器,如图8所示,其示出了本技术实施例所涉及的电子设备的结构示意图,具体来讲:
109.该电子设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、电源503和输入单元504等部件。本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
110.处理器501是该电子设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备的各种功能和处理数据,从而对电子设备进行检测。可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
111.存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
112.电子设备还包括给各个部件供电的电源503,优选的,电源503可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
113.该电子设备还可包括输入单元504,该输入单元504可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
114.尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器501会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的计算机程序,从而实现本技术前述实施例的各种功能,如处理器501可以执行:
115.从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象。
116.在本技术的一些实施例中,在所述利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空之前,所述处理器501可以执行:根据各轮次下所述内存中的对象个数,随机确定第一个数个目标数值,所述第一个数为各轮次下所述候选池内的对象个数;从所述目标池内确定所述目标数值对应的对象,得到所述目标池内的所述目标对象。
117.在本技术的一些实施例中,所述目标池内的每个对象对应一个编号,所述目标数值为小于所述编号中最大编号的值;所述从所述目标池内确定所述目标数值对应的对象时,处理器501可以执行:从所述目标池内确定所述目标数值对应的编号,得到目标编号;将所述目标池内所述目标编号对应的对象,确定为所述目标数值对应的对象。
118.在本技术的一些实施例中,所述从存储库中加载至少一个对象至目标池时,处理器501可以执行:获取预定数目,所述预定数目为期望筛选出的对象的数目;从所述存储库中的对象中随机确定所述预定数目个对象,作为目标加载对象;将所述目标加载对象加载至所述目标池。
119.在本技术的一些实施例中,所述目标池内包括预定数目个对象;所述将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池时,处理器501可以执行:将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池,其中,各所述轮次下加载目标数目个对象至所述候选池,各所述轮次下所述内存中的对象个数为所述目标数目与所述预定数目之和。
120.在本技术的一些实施例中,所述若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象时,处理器501可以执行:若所述存储库内未加载至所述内存的对象的个数为零,则停止加载对象至所述候选池的轮次,并将停止加载对象至所述候选池的轮次时所述目标池内的对象确定为筛选出的对象。
121.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以
通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
122.为此,本技术实施例还提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种方法中的步骤。
123.其中,该计算机可读存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
124.由于该计算机可读存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种方法中的步骤,因此,可以实现本技术实施例所提供的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
125.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术上述实施例中各种可选实现方式中提供的方法。
126.本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。
127.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的实施例,而可以在不脱离其范围的情况下进行各种修改和改变。
技术特征:
1.一种对象筛选方法,其特征在于,包括:从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象。2.根据权利要求1所述的方法,其特征在于,在所述利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空之前,所述方法还包括:根据各轮次下所述内存中的对象个数,随机确定第一个数个目标数值,所述第一个数为各轮次下所述候选池内的对象个数;从所述目标池内确定所述目标数值对应的对象,得到所述目标池内的所述目标对象。3.根据权利要求2所述的方法,其特征在于,所述目标池内的每个对象对应一个编号,所述目标数值为小于所述编号中最大编号的值;所述从所述目标池内确定所述目标数值对应的对象,包括:从所述目标池内确定所述目标数值对应的编号,得到目标编号;将所述目标池内所述目标编号对应的对象,确定为所述目标数值对应的对象。4.根据权利要求1所述的方法,其特征在于,所述从存储库中加载至少一个对象至目标池,包括:获取预定数目,所述预定数目为期望筛选出的对象的数目;从所述存储库中的对象中随机确定所述预定数目个对象,作为目标加载对象;将所述目标加载对象加载至所述目标池。5.根据权利要求1所述的方法,其特征在于,所述目标池内包括预定数目个对象;所述将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池,包括:将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池,其中,各所述轮次下加载目标数目个对象至所述候选池,各所述轮次下所述内存中的对象个数为所述目标数目与所述预定数目之和。6.根据权利要求1至5任一项所述的方法,其特征在于,所述若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象,包括:若所述存储库内未加载至所述内存的对象的个数为零,则停止加载对象至所述候选池的轮次,并将停止加载对象至所述候选池的轮次时所述目标池内的对象确定为筛选出的对象。7.一种对象筛选装置,其特征在于,包括:第一加载模块,用于从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;第二加载模块,用于将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;替换模块,用于在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对
象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;确定模块,用于若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象。8.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至6任一项所述的方法。9.一种电子设备,其特征在于,包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行权利要求1至6任一项所述的方法。10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至6任一项的方法。
技术总结
本申请公开了一种对象筛选方法、装置、介质、电子设备及产品,涉及计算机技术领域,本申请可以应用于地图车辆网及区块链等领域,该方法包括:从存储库中加载至少一个对象至目标池,所述目标池位于内存中,所述内存中还包括候选池;将所述存储库中未加载至所述内存的对象,通过至少两个轮次加载至所述候选池;在各所述轮次下,利用所述候选池内对象替换所述目标池内的目标对象后将所述候选池置空,所述目标对象为根据各轮次下所述内存中的对象个数确定的;若所述存储库内未加载至所述内存的对象符合停止加载条件,将所述目标池内的对象确定为筛选出的对象。本申请可以有效降低对象筛选时设备的内存占用及计算量,降低设备性能损耗。耗。耗。
技术研发人员:成贤斌
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.01.04
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
