资源分配方法及装置
技术领域
本申请涉及区块链技术领域,尤其涉及一种资源分配方法和装置。
背景技术
由于区块链具有信任成本低,可基于多个区块链节点之间的共识机制进行信任判断得到了广泛的应用。
目前,基于区块链的资源分配业务较为广泛,比如,对于区块链中的去中心化的应用(Decentralized application,DAPP),会提供游戏进而提供游戏中的奖励资源分配,相关技术中,基于随机数作为分配资源的比较标准数,且随机数的通常是根据默认的算法来生成的,比如,在DAPP的应用的比大小游戏中,系统后台按照当前用户比赛的次数求取平方值计算随机数,将用户输入的数字和随机数进行大小的比较来确定是否给当前用户分配奖励,由此,当用户基于当前比赛次数的把握可以很容易破解随机数的计算方式,进而,直接影响奖励分配的公平。
申请内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种资源分配方法,实现了在基于DAPP类型的应用中进行资源分配的随机数的不可预测性,达到资源分配的公平性。
本申请的第二个目的在于提出一种资源分配装置。
本申请的第三个目的在于提出一种电子设备。
本申请的第四个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种资源分配方法,包括:
获取当前区块链中根据预设算法生成的第一随机数;获取当前去中心化应用中参加资源分配的区块链账号的数量值,其中,当获取到所述区块链账号在去中心化应用中输入的竞争数值时确定所述区块链账号参加资源分配;根据预设的随机数生成算法对所述第一随机数和所述数量值计算生成第二随机数;确定所述第二随机数和所述区块链账号在所述去中心化应用中输入的竞争数值的大小关系,确定所述大小关系满足预设分配条件的目标区块链账号,并为所述目标区块链账号分配资源。
本申请实施例的资源分配方法,首先获取当前区块链中根据预设算法生成的第一随机数;其次获取当前去中心化应用中参加资源分配的区块链账号的数量值,其中,当获取到所述区块链账号在去中心化应用中输入的竞争数值时确定所述区块链账号参加资源分配;然后根据预设的随机数生成算法对所述第一随机数和所述数量值计算生成第二随机数;最后确定所述第二随机数和所述区块链账号在所述去中心化应用中输入的竞争数值的大小关系,确定所述大小关系满足预设分配条件的目标区块链账号,并为所述目标区块链账号分配资源。由此,基于难以预测的参与资源分配的区块链账号的数量值作为随机数生成的种子数,提高了种子数的复杂性,实现了资源分配时所依据的比较标准数的难以破解性,保证了资源分配的公平性,提高了区块链的实用性,有利于区块链的应用推广。
为达上述目的,本申请第二方面实施例提出了一种资源分配装置,包括:
第一获取模块,用于获取去中心化当前区块链中根据预设算法生成的第一随机数;第二获取模块,用于获取当前去中心化应用中参加资源分配的区块链账号的数量值,其中,当获取到所述区块链账号在去中心化应用中输入的竞争数值时确定所述区块链账号参加资源分配;计算模块,用于根据预设的随机数生成算法对所述第一随机数和所述数量值计算生成第二随机数;确定模块,用于确定所述第二随机数和所述区块链账号在所述应用中输入的竞争数值的大小关系,确定所述大小关系满足预设分配条件的目标区块链账号;分配模块,用于为所述目标区块链账号分配资源。
本申请实施例的资源分配装置,首先通过第一获取模块获取当前区块链中根据预设算法生成的第一随机数,其次通过第二获取模块获取当前去中心化应用中参加资源分配的区块链账号的数量值,其中,当获取到所述区块链账号在应用中输入的竞争数值时确定所述区块链账号参加资源分配;然后通过计算模块根据预设的随机数生成算法对所述第一随机数和所述数量值计算生成第二随机数;接着通过确定模块确定所述第二随机数和所述区块链账号在所述应用中输入的竞争数值的大小关系,确定所述大小关系满足预设分配条件的目标区块链账号。最后通过分配模块为所述目标区块链账号分配资源。由此,基于难以预测的参与资源分配的区块链账号的数量值作为随机数生成的种子数,提高了种子数的复杂性,实现了资源分配时所依据的比较标准数的难以破解性,保证了资源分配的公平性,提高了区块链的实用性,有利于区块链的应用推广。
本申请另一方面实施例提出了一种电子设备,包括处理器和存储器;其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如上述实施例所述的资源分配方法。
本申请另一方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述实施例所述的资源分配方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种资源分配方法的流程示意图;
图2-1为本申请一个实施例所提供的资源分配方法的应用场景示意图;
图2-2为本申请另一实施例提供的资源分配方法的应用场景示意图;
图3为本申请第一个实施例提供的资源分配装置的结构示意图。
图4为本申请第二个实施例提供的资源分配装置的结构示意图。
图5为本申请第三个实施例提供的资源分配装置的结构示意图。
图6为本申请第四个实施例提供的资源分配装置的结构示意图。
图7示出了适于用来实现本申请实施方式的示例性电子设备的框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的资源分配方法和装置。其中,本申请实施例的资源分配方法可以应用任意依托于区块链的资源分配活动,该活动包含游戏中虚拟奖励金分配、商家活动中奖品的分配、公司活动中工作量的分配等任意涉及资源的分配场景。
图1为本申请实施例所提供的一种资源分配方法的流程示意图。
如图1所示,该资源分配方法包括以下步骤:
步骤101,获取当前区块链中根据预设算法生成的第一随机数。
可以理解,上述预设算法为区块链中默认的算法,基于该预设算法生成第一随机数,其中,该第一随机数的生成种子数可以为区块链中最新写入的区块的区块编码,也可以是最新生成区块的时间点,还可以为在设定初始值的基础上按顺序递增的值(比如,初始值为0,每计算一次第一随机数对初始值加1作为当前的种子数)。上述预设算法可以为求取平方算法,比如,对最新生成区块的时间点的最后一位数取平方,或者,对区块链中的编码最后一位数取平方等,上述预设算法也可以为其他任意一种预先规定的默认算法,在此不作限制。
步骤102,获取当前去中心化应用中参加资源分配的区块链账号的数量值,其中,当获取到区块链账号在应用中输入的竞争数值时确定区块链账号参加资源分配。
不难理解的是,上述第一随机数生成的随机算法和种子数由于规律固定,因而,被破解的难度较低,比如,当种子数是区块链编码,预设算法是平方求取算法时,基于区块链的共识机制,区块链编码是较为容易获取的公知信息,基于区块链编码最后一位数求取平方的规律较容易破解,一旦被破解则很有可能导致资源的分配不公平。
为了解决上述资源分配不公平的问题,本申请实施例引入了一个不可预测的数值-当前去中心化应用中参加资源分配的区块链账号的数量值,由于当前应用中参加资源分配的区块链账号的数量值是实时变化的,可能分布在各个地理位置,难以推测,因而,基于该数量值来计算进一步计算最终的随机数的种子数。当然,在一些可能的实施例中,为了进一步提高种子数的破解难度,获取的参加资源分配的区块链账号的数量值还可以包含距离当前时间点在预设范围内的所有参加资源分配的区块链账号的数量值。
需要说明的是,本申请实施例中判断当前去中心化应用中区块链账号是否参与资源分配,是依据是否在去中心化应用中输入竞争数值确定的,该竞争数值可以理解为当前区块链账号用来与去中心化应用后台生成的标准数比较,进行资源的争取。举例而言,在扔骰子游戏中,将输入骰子的猜点数(竞争数值)的区块链账号作为当前去中心化应用中参与资源分配的区块链账号。
步骤103,根据预设的随机数生成算法对第一随机数和数量值计算生成第二随机数。
具体地,获取到第一随机数和参加资源分配的区块链账号的数量值后,根据预设的算法对第一随机数和数量值计算生成第二随机数。由此,生成的第二随机数的种子数不但和第一随机数有关,还和数量值有关,正如以上分析的,第二随机数是难以预测的,因此,显而易见的是,生成第二随机数的种子数是难以预测的,进而,生成的第二随机数也是难以预测的。
需要说明的是,上述随机数生成算法可以是去中心化应用后台默认的,也可以是人为规定的,在不同的应用场景中,生成第二随机数的算法不同,示例如下:
方式一:
获取第一随机数和数量值的相加之和,计算相加之和的平方值作为第二随机数。也就是获取到第一随机数和参与资源分配的区块链账号的数量值相加之和的平方值即为第二随机数。
方式二:
获取第一随机数和数量值的相差绝对值,计算相差绝对值的平方作为第二随机数。也就是获取到第一随机数和参与资源分配的区块链账号的数量值的差的绝对值的平方值即为第二随机数。
方式三:
获取第一随机数和数量值相除后的余数,基于该余数输入预设的计算公式,将该计算公式得到的计算结果作为第二随机数,其中,上述预设的计算公式可以为任意具有一个变量参数的计算公式,比如,计算公式可以为f(X)=aX+bX2,其中,f(X)为第二随机数,X为上述余数,a和b均为常数。
步骤104,确定第二随机数和区块链账号在应用中输入的竞争数值的大小关系,确定大小关系满足预设分配条件的目标区块链账号,并为目标区块链账号分配资源。
具体地,确定第二随机数后,将该第二随机数作为去中心化应用后台的比较标准数与区块链账号输入的竞争数值进行比较,基于第二随机数和区块链账号在去中心化应用中输入的竞争数值的大小关系,确定大小关系满足预设分配条件的目标区块链账号,并为目标区块链账号分配资源。其中,上述预设分配条件是去中心化应用根据场景需要设定的,可以设定第二随机数大于竞争数值,即为区块链账号满足分配条件,此时为目标区块链账号分配资源,可以设定第二随机数小于等于竞争数值,即为区块链账号满足分配条件,此时为目标区块链账号分配资源。
当然,在实际执行中,仅仅基于上述简单的大小关系的比较作为分配条件,也很有可能导致资源分配的不公平,举例而言,当设定第二随机数小于等于竞争数值,即为区块链账号满足分配条件时,区块链账号显然可以输入一个接近于无穷大的竞争数值来参与资源分配以保证其必然会大于对应的第二随机数,为了避免这种情况的发生,在一些可能的示例中,确定第二随机数和区块链账号在应用中输入的竞争数值的差值,设定差值的绝对值满足预设阈值的区块链账号为满足分配条件的目标区块链账号,由此,形成了输入竞争数值的约束,保证了资源分配的公平性。
为了更加清楚的说明如何对大小关系满足预设分配条件的目标区块链账号,并为目标区块链账号分配资源,下面以游戏场景中分别为单机模式游戏和多人游戏模式为例进行说明,在下述示例中,分配的资源为奖励金,预设分配条件为输入的竞争数值大于第二随机数且与第二随机数的差值的绝对值在2以内:第一种示例:
在该示例中,如图2-1所示,
资源分配的应用场景为单机游戏模式,在该场景中,参与游戏的区块链账号A和B基于和应用后台生成的第二随机数单独比较,以基于两个区块链账号中每个区块链账号输入的竞争数值与第二随机数的大小关系,来确定是否给对应的区块链账号分配奖励金。
在本示例中,区块链账号A输入的竞争数值为3,区块链账号B输入的竞争数值为90,此时第二随机数为2,由此,虽然区块链账号A和区块链账号B输入的竞争数值均大于第二随机数2,但是只有区块链账号A输入的竞争数值与2的差值的绝对值在2以内,因此,在本次游戏中,确定A赢得游戏,为A分配奖励金,B输掉游戏,没有被分配奖励金。
第二种示例:
在该示例中,如图2-2所示,
资源分配的应用场景为多机游戏模式,在该场景中,参与游戏的区块链账号A、B和C基于和应用后台生成的第二随机数单独比较,以基于三个区块链账号中每个区块链账号输入的竞争数值与第二随机数的大小关系,来确定是否给对应的区块链账号分配奖励金。
在本示例中,区块链账号A输入的竞争数值为3,区块链账号B输入的竞争数值为90,区块链账号C输入的竞争数值为4,此时第二随机数为3,由此,虽然区块链账号A、区块链账号B和区块链账号C输入的竞争数值均大于第二随机数2,但是只有区块链账号A和C输入的竞争数值与2的差值的绝对值在2以内,因此,在本次游戏中,确定A和C赢得游戏,为A和C分配奖励金,B输掉游戏,没有被分配奖励金,其中,在多机模式下存在多个胜方时,多个胜方之间的奖励金的分配可以均分也可根据满足分配条件的程度进行奖励金的划分。
综上,本申请实施例的资源分配方法,获取当前区块链中根据预设算法生成的第一随机数,获取当前去中心化应用中参加资源分配的区块链账号的数量值,其中,当获取到区块链账号在去中心化应用中输入的竞争数值时确定区块链账号参加资源分配,根据预设的随机数生成算法对第一随机数和数量值计算生成第二随机数,进而,确定第二随机数和区块链账号在去中心化应用中输入的竞争数值的大小关系,确定大小关系满足预设分配条件的目标区块链账号,并为目标区块链账号分配资源。由此,基于难以预测的参与资源分配的区块链账号的数量值作为随机数生成的种子数,提高了种子数的复杂性,实现了资源分配时所依据的比较标准数的难以破解性,保证了资源分配的公平性,提高了区块链的实用性,有利于区块链的应用推广。
为了实现上述实施例,本申请还提出一种资源分配装置。
图3为本申请实施例提供的一种资源分配装置的结构示意图。
如图3所示,该资源分配装置包括:第一获取模块11,第二获取模块21,计算模块31,确定模块41,分配模块51。
第一获取模块11,用于获取当前区块链中根据预设算法生成的第一随机数。
第二获取模块21,用于获取当前去中心化应用中参加资源分配的区块链账号的数量值,其中,当获取到区块链账号在去中心化应用中输入的竞争数值时确定区块链账号参加资源分配。
计算模块31,用于根据预设的随机数生成算法对第一随机数和数量值计算生成第二随机数。
确定模块41,用于确定第二随机数和区块链账号在去中心化应用中输入的竞争数值的大小关系,确定大小关系满足预设分配条件的目标区块链账号。
分配模块51,用于为目标区块链账号分配资源。
进一步地,作为本申请实施例的一种可能的实现方式,第一获取模块10,具体用于获取区块链中最新写入的区块中的区块编码,将区块编码作为第一随机数。
进一步地,作为本申请实施例的一种可能的实现方式,如图4所示。在图3所示的基础上,计算模块31包括第一获取单元311,第一计算单元312,其中,
第一获取单元311,用于获取第一随机数和数量值的相加之和;
第一计算单元312,用于计算相加之和的平方值作为第二随机数。
作为本申请实施例的另一种可能实现方式,如图5所示。在图3所示的基础上,计算模块31包括第二获取单元313,第二计算单元314,其中,
第二获取单元313,用于获取第一随机数和数量值的相差绝对值;
第二计算单元314,用于计算相差绝对值的平方值作为第二随机数。
进一步地,作为本申请实施例的一种可能的实现方式,如图6所示。在图3所示的基础上,确定模块41包括第一确定单元411,第二确定单元412,其中,
第一确定单元411,用于确定第二随机数和区块链账号在应用中输入的竞争数值的差值;
第二确定单元412,用于确定绝对值小于预设阈值的差值对应的目标区块链账号。
需要说明的是,前述对资源分配方法实施例的解释说明也适用于该实施例的资源分配装置,此处不再赘述。
本申请实施例中,首先通过第一获取模块获取当前区块链中根据预设算法生成的第一随机数,其次通过第二获取模块获取当前去中心化应用中参加资源分配的区块链账号的数量值,其中,当获取到区块链账号在去中心化应用中输入的竞争数值时确定区块链账号参加资源分配;然后通过计算模块根据预设的随机数生成算法对第一随机数和数量值计算生成第二随机数;接着通过确定模块确定第二随机数和区块链账号在应用中输入的竞争数值的大小关系,确定大小关系满足预设分配条件的目标区块链账号。最后通过分配模块为目标区块链账号分配资源。由此,基于难以预测的参与资源分配的区块链账号的数量值作为随机数生成的种子数,提高了种子数的复杂性,实现了资源分配时所依据的比较标准数的难以破解性,保证了资源分配的公平性,提高了区块链的实用性,有利于区块链的应用推广。
为了实现上述实施例,本申请实施例还提出一种电子设备,包括处理器和存储器;
其中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现如上述实施例所描述的资源分配方法。
图7示出了适于用来实现本申请实施方式的示例性电子设备的框图。图7显示的电子设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多数量据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
为了实现上述实施例,本申请实施例还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述的资源分配方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。