CN111708921B - 一种号码选择的方法、装置、设备和存储介质 - Google Patents
一种号码选择的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111708921B CN111708921B CN202010529824.3A CN202010529824A CN111708921B CN 111708921 B CN111708921 B CN 111708921B CN 202010529824 A CN202010529824 A CN 202010529824A CN 111708921 B CN111708921 B CN 111708921B
- Authority
- CN
- China
- Prior art keywords
- selection
- bit
- selectable
- numbers
- prefix tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000010187 selection method Methods 0.000 title description 6
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012216 screening Methods 0.000 claims abstract description 22
- 238000005070 sampling Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种号码选择的方法、装置、设备和存储介质。该方法包括:构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定号码前缀树的选号边界;根据选号边界遍历号码前缀树,得到可选号码位上的局部待选号码;基于局部待选号码和待选号段的非可选号码位上的已有号码,计算非可选号码位上的约束号码,并生成完整待选号码;从完整待选号码中筛选出符合预设选号要求的目标选用号码。本发明提供的技术方案,在选号规则动态配置的情况下,任一选号规则下均采用相同的选号逻辑,无需重新从大量号码中筛选符合该动态配置的新规则下的号码再次进行匹配存储,极大减少选号规则动态配置时的号码选择开销,提高号码选择效率。
Description
技术领域
本发明实施例涉及数据库检索技术领域,尤其涉及一种号码选择的方法、装置、设备和存储介质。
背景技术
为了区分客户之间的重要性,会设定多种具备特定增值服务的号码,例如银行卡号中包含666或者888等规则的号码。此时,某些客户在办理账号申请业务时,通常会选择具备特定规则下的号码。
现有技术中,针对普遍设置的各个规则,会预先从大量号码中筛选出符合该规则要求和号码约束条件的各个号码,进而在数据库中将所筛选出的号码与该规则进行匹配存储,后续通过查询数据库直接筛选制定规则下的号码。
此时,现有技术只有针对已近明确匹配过的规则,才能快速筛选出对应的号码,但是由于客户会动态配置各种规则,使得规则发生动态变化,而对于之前未匹配过的规则,则需要重新从大量号码中筛选出符合该规则要求和号码约束条件的各个号码,再次在数据库中进行匹配存储,极大增加了号码选择的判断开销,使得号码选择效率过低。
发明内容
本发明实施例提供了一种号码选择的方法、装置、设备和存储介质,在选号规则动态配置的情况下,减少号码选择开销,提高号码选择效率。
第一方面,本发明实施例提供了一种号码选择的方法,该方法包括:
构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定所述号码前缀树的选号边界;
根据所述选号边界遍历所述号码前缀树,得到所述可选号码位上的局部待选号码;
基于所述局部待选号码和所述待选号段的非可选号码位上的已有号码,计算所述非可选号码位上的约束号码,并生成对应的完整待选号码;
从所述完整待选号码中筛选出符合预设选号要求的目标选用号码。
第二方面,本发明实施例提供了一种号码选择的装置,该装置包括:
前缀树构建模块,用于构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定所述号码前缀树的选号边界;
前缀树遍历模块,用于根据所述选号边界遍历所述号码前缀树,得到所述可选号码位上的局部待选号码;
待选号码生成模块,用于基于所述局部待选号码和所述待选号段的非可选号码位上的已有号码,计算所述非可选号码位上的约束号码,并生成对应的完整待选号码;
号码筛选模块,用于从所述完整待选号码中筛选出符合预设选号要求的目标选用号码。
第三方面,本发明实施例提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的号码选择的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的号码选择的方法。
本发明实施例提供了一种号码选择的方法、装置、设备和存储介质,通过构建选号规则在待选号段的可选号码位上关联的号码前缀树,通过号码前缀树的选号边界来遍历该号码前缀树,得到可选号码位上的局部待选号码,进而基于局部待选号码和待选号段的非可选号码位上的已有号码,计算非可选号码位上的约束号码,并生成对应的完整待选号码,后续从完整待选号码中筛选出符合预设选号要求的目标选用号码,此时在选号规则动态配置的情况下,所构建的号码前缀树也发生变化,使得任一选号规则下均采用相同的选号逻辑,无需重新从大量号码中筛选符合该动态配置的新规则下的号码再次进行匹配存储,极大减少了选号规则动态配置时的号码选择开销,从而提高号码选择效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1A为本发明实施例一提供的一种号码选择的方法的流程图;
图1B为本发明实施例一提供的方法中号码前缀树的示例性结构图;
图2为本发明实施例二提供的一种号码选择的方法的流程图;
图3为本发明实施例三提供的一种号码选择的装置的结构示意图;
图4为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1A为本发明实施例一提供的一种号码选择的方法的流程图,本实施例可适用于对任一种类型下具备相应增值服务的号码进行选择的情况中。本实施例提供的一种号码选择的方法可以由本发明实施例提供的号码选择的装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的电子设备中。
具体的,参考图1A,该方法可以包括如下步骤:
S110,构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定号码前缀树的选号边界。
具体的,现有的账号系统中通常会存在大量号码,此时针对不同的增值业务,会将号码按照一定的字符组合规则进行对应增值服务下的分类,因此客户在办理账号申请时,通常会预先设置本次期望所申请的号码符合的选号规则,本实施例中的选号规则为所选号码中包含的关键字段的字符组合关系,例如期望所选号码的相应号码位上存在666、888或者520等具有特定含义的字符串。
然而,对于不同的号码所属机构,会在号码中设定固定的号码段来指示该号码所属的号码机构,例如针对不同银行的银行卡号,会通过设定同一银行的各个银行卡号中前几位为相同的固定号码,因此在一个完整的号码中仅允许客户在对应的可变号码位上设置对应的选号规则,此时由于每个完整号码中存在一个字符是由其他字符校验得到的,以使完整号码内的各个字符之间能够满足相应的号码约束条件,因此在提供给客户在相应号码位上来设置选号规则时首先会排除该完整号码中存在的约束号码位的影响;同时,由于后台存在大量号码,为了提高选号效率,客户会预先设定相应的待选号段,后台仅在该待选号段内筛选具有该选号规则的号码,例如待选号段可以为6220548700023456到6220548799999999之间,此时通过分析待选号段,能够确定出本次选号时客户设定的选号规则所处的可选号码位,例如待选号段为6220548700023456到6220548799999999之间,提供给客户设置选号规则的可选号码位可以为由待选号段确定出的可变号码位中排除约束号码位后的剩余号码位,此时由待选号段确定出的固定号码位为62205487所在的号码前8位,可变号码位为62205487之后的号码后8位,如果将号码第9位作为约束号码位,那么提供给客户设置选号规则的可选号码位则为号码后7位。
可选的,在接收到客户设置的选号规则和待选号段后,首先会通过分析待选号段,确定出该选号规则在完整号码中所处的可选号码位,进而按照用户所设置的选号规则,采用前缀树的结构顺序解析可选号码位上可能存在的各种情况,进而将可选号码位上满足该选号规则的全部字符组合形式统一构建成对应的号码前缀树来表示,使得该号码前缀树下的每一号码分支均为可选号码位上满足该选号规则的一种号码可选情况。
需要说明的是,本实施例中的选号规则可以包括至少一个选号子规则,该选号子规则可以为****666、888****或者0123456等,多个选号子规则共同组成本次的选号规则。示例性的,如果选号规则中包括1234567、666698*和6666*88三个选号子规则,那么所构建出的该选号规则在可选号码位上关联的号码前缀树可以如图1B所示。
同时,在构建出选号规则在可选号码位上关联的号码前缀树时,为了在客户设置的待选号段内选择号码,本实施例还会根据该待选号段中处于可选号码位上的号码变化情况,确定该号码前缀树的选号边界,例如如果待选号段为6220548700023456到6220548799999999之间,选号规则所处的可选号码位为号码后7位,那么该选号规则在可选号码位上关联的号码前缀树的选号边界则为0023456到9999999之间。
此外,由于选号规则可能由多个选号子规则共同组成,因此客户在设置本次的选号规则时,可以直接在原有的选号规则上新增或者删除部分特定的选号子规则,进而将更新后的选号规则作为本次选号参考的选号规则,而原有的选号规则在可选号码位上已经构建有关联的号码前缀树,因此为了保证号码前缀树的准确性,本实施例还可以包括:如果选号规则中的选号子规则更换,则对应更新选号规则在待选号段的可选号码位上关联的号码前缀树。
具体的,如果选号规则中的选号子规则中新增或者删除了个别选号子规则,那么可以在该选号规则在可选号码位上关联的号码前缀树中新增或者删除该个别选号子规则对应的号码分支,以对原有的号码前缀树进行更新,从而在动态配置选号规则时,对应更新号码前缀树,从而保证号码前缀树与选号规则的实时匹配性,提高号码选择的准确性。
S120,根据选号边界遍历号码前缀树,得到可选号码位上的局部待选号码。
可选的,在得到选号规则在可选号码位上关联的号码前缀树以及该号码前缀树的选号边界时,由于该号码前缀树中包含了满足该选号规则的处于可选号码位上可能存在的各种号码字符组合情况,因此本实施例中可以根据号码前缀树的选号边界来遍历该号码前缀树,每次遍历一个号码分支即可得到该可选号码位上的一个局部待选号码,遍历完成时,即可得到该可选号码位上满足该选号规则的全部局部待选号码,此时所遍历出的局部待选号码均处于该号码前缀树的选号边界内,也就使得最后得到的完整号码在客户设置的待选号段内,此时通过遍历号码前缀树,能够快速筛选出满足选号规则和选号边界的局部待选号码,在保证号码选择高效性的基础上,进一步提高了号码选择的全面性和准确性。
示例性的,为了保证遍历号码前缀树得到局部待选号码的随机性,本实施例中根据选号边界遍历号码前缀树,可以具体包括:采用回溯算法遍历号码前缀树,并在每次遍历号码前缀树中下一深度下的号码节点时,采用洗牌算法从下一深度下的可选号码节点中确定当前遍历节点,直至遍历出的局部待选号码触发选号边界或者达到遍历选号上限,则停止遍历号码前缀树。
在本实施例中,可以采用回溯算法按照深度优先策略来遍历号码前缀树,首先从根节点出发开始搜索号码前缀树,当遍历至号码前缀树的某一号码节点时,先利用剪枝函数判断该号码节点符合选号规则和选号边界的要求;如果不符合,则跳过以该号码节点为根的其他号码节点的遍历,逐层向其祖先号码节点回溯;否则,进入该号码节点下的子节点,继续按深度优先策略进行遍历;此时,在每次遍历号码前缀树中下一深度下的号码节点时,为了保证遍历生成的局部待选号码的随机性,本实施例会从号码前缀树中下一深度下的全部号码节点中先筛选出该下一深度下未被遍历过的可选号码节点,进而采用洗牌算法对该下一深度下的各个可选号码节点的遍历顺序进行洗牌,以使每一可选号码节点都能够以等概率的机会进行遍历,然后根据该下一深度下可选号码节点的洗牌结果确定出该下一深度下的当前遍历节点,进而对该当前遍历节点下的子节点继续进行洗牌遍历,如图1B所示,根节点深度为0,那么在遍历深度为5下的各个号码节点时,若深度为5下的各个号码节点均未被遍历过,则均为可选号码节点,此时深度为5下各个号码节点的正常遍历顺序为0123456789,而在进行洗牌后的遍历顺序可以为6847135902,此时洗牌后的当前遍历节点为字符为6的号码节点,后续在遍历完字符为6的号码节点下的各个子节点后,会继续遍历深度为5下除字符6外的其他号码节点,此时对除字符6外的其他号码节点继续进行洗牌,依次循环,直至遍历出的局部待选号码触发选号边界或者达到遍历选号上限,则停止遍历号码前缀树,该遍历选号上限为系统预先设定的每次遍历筛选出的局部待选号码的上限,此时通过本次遍历可以得到相应数量的局部待选号码,并确保局部待选号码的随机性。
S130,基于局部待选号码和待选号段的非可选号码位上的已有号码,计算非可选号码位上的约束号码,并生成对应的完整待选号码。
可选的,在根据待选号段分析出提供给客户设置选号规则的可选号码位时,待选号段的非可选号码位上出约束号码位之外的字符都是确定的,因此在遍历得到可选号码位上满足选号规则的各个局部待选号码之后,可以分别采用每一局部待选号码和非可选号码位上的已有号码来计算非可选号码位上的约束号码,并将非可选号码位上的已有号码和约束号码以及可选号码位上与该约束号码局部待选号码按照特定的号码位顺序组合成对应的完整待选号码,使得完整待选号码内的各个字符之间符合一定的约束条件。
示例性的,例如待选号段为6220548700023456到6220548799999999之间,非可选号码位上的已有号码为62205487,号码第9位为约束号码位,可选号码位则为号码后7位,此时在遍历得到大量可选号码位上满足选号规则的局部待选号码之后,可以分别采用每一局部待选号码和已有号码62205487来计算号码第9位上的约束号码,进而将已有号码62205487、所计算的约束号码和该局部待选号码共同组成对应的完整待选号码。
S140,从完整待选号码中筛选出符合预设选号要求的目标选用号码。
可选的,本实施例中的预设选号要求可以为所筛选出的目标选用号码未被其他用户使用且本次选号的数量,因此在生成大量完整待选号码之后,首先从本次生成的全部完整待选号码中过滤出已经被其他用户使用的号码,然后从剩余未被其他用户使用的号码中随机筛选出本次选号的数量下的目标选用号码,作为客户本次选号最终得到的号码。
本实施例提供的技术方案,通过构建选号规则在待选号段的可选号码位上关联的号码前缀树,通过号码前缀树的选号边界来遍历该号码前缀树,得到可选号码位上的局部待选号码,进而基于局部待选号码和待选号段的非可选号码位上的已有号码,计算非可选号码位上的约束号码,并生成对应的完整待选号码,后续从完整待选号码中筛选出符合预设选号要求的目标选用号码,此时在选号规则动态配置的情况下,所构建的号码前缀树也发生变化,使得任一选号规则下均采用相同的选号逻辑,无需重新从大量号码中筛选符合该动态配置的新规则下的号码再次进行匹配存储,极大减少了选号规则动态配置时的号码选择开销,从而提高号码选择效率。
实施例二
图2为本发明实施例二提供的一种号码选择的方法的流程图。本实施例是在上述实施例的基础上进行优化。可选的,本实施例中主要对于待选号段的可选号码位和非可选号码位的划分情况进行详细的解释说明。
可选的,如图2所示,本实施例具体可以包括如下步骤:
S210,构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定号码前缀树的选号边界。
S220,根据选号边界遍历所述号码前缀树,得到可选号码位上的局部待选号码。
S230,根据待选号段确定非可选号码位上的固定号码和卡池号码。
可选的,如果可选号码位较长时,选号规则在可选号码位上关联的号码前缀树也会比较复杂,从而使号码前缀树的遍历过程变得繁琐,因此在划分待选号段的可选号码位和非可选号码位时,需要在非可选号码位上的已有号码足够明确的基础上,尽可能使可选号码位最少,进而使选号规则较短;此时,由于每一号码位上的字符仅可能包含0-9这10个字符中的一种字符,因此在通过分析待选号段来划分可选号码位和非可选号码位时,除了考虑用于指示所属号码机构的固定号码和设置完整号码的约束条件的约束号码位的影响之外,还会在非可选号码位中额外设定一个卡池号码位,该卡池号码位上仅为0-9这10个字符中的任一种字符,此时该卡池号码位上的每一卡池号码均可以与遍历得到的可选号码位上的各个局部待选号码进行组合,得到对应的完整待选号码。
示例性的,待选号段为6220548700023456到6220548799999999之间,由待选号段确定出的固定号码位为62205487所在的号码前8位,可变号码位为62205487之后的号码后8位,此时可以将号码第9位作为卡池号码位,包含0-9这10个字符,将号码第10位作为约束号码位,后续由其他号码位上的字符统一计算得到,此时提供给客户设置选号规则的可选号码位则为号码后6位。
因此,在遍历号码前缀树,得到可选号码位上的局部待选号码之后,首先可以通过分析待选号段,确定出非可选号码位上的固定号码位上的固有号码和卡池号码位上的各个卡池号码,后续可以通过可选号码位上的局部待选号码以及非可选号码位上的固定号码和卡池号码,来计算非可选号码位上的约束号码。
S240,基于局部待选号码、固定号码、卡池号码以及完整号码约束条件,计算非可选号码位上的约束号码,并生成对应的完整待选号码。
可选的,在遍历得到可选号码位上的各个局部待选号码,并确定出非可选号码位上的固定号码和卡池号码之后,针对每一卡池号码,按照完整号码约束条件,分别采用该卡池号码、固定号码和各个局部待选号码,计算出该卡池号码下对应的非可选号码位上每一局部待选号码对应的约束号码,进而将每一卡池号码下对应的卡池号码、固定号码、约束号码和各个局部待选号码进行组合,得到对应的完整待选号码。
例如,待选号段为6220548700023456到6220548799999999之间,非可选号码位上的固定号码为62205487,号码第9位为卡池号码位,包含0-9这10个字符,号码第10位为约束号码位,可选号码位为号码后6位,此时在遍历得到大量可选号码位上满足选号规则的局部待选号码之后,可以针对每一卡池号码,将固定号码62205487、该卡池号码、所计算的约束号码和各个局部待选号码共同组成对应的完整待选号码。
S250,确定每一卡池号码对应的卡池位图。
可选的,由于完整待选号码中针对每一卡池号码,存在该卡池号码所属的非可选号码位上的固定号码和可选号码位上的局部待选号码与其他卡池号码所属的非可选号码位上的固定号码和可选号码位上的局部待选号码均相同的情况,但完整待选号码不同,因此针对每一卡池号码,会预先设置对应的卡池位图,在该卡池位图中记录该卡池号码所在各个完整待选号码的使用标识,用于指示该卡池号码所在的各个完整待选号码是否已经被其他用户使用。因此,为了保证号码使用的唯一性,本实施例在从完整待选号码中筛选符合预设选号要求的目标选用号码之前,首先需要确定每一卡池号码对应的卡池位图,以判断该卡池号码所在的各个完整待选号码是否已经被其他用户使用。
S260,根据每一卡池号码的卡池位图,从完整待选号码中初步筛选出未被使用的初步选用号码。
可选的,在生成对应的完整待选号码,并确定出每一卡池号码对应的卡池位图后,可以通过分析每一完整待选号码内包含的卡池号码,进而在该卡池号码对应的卡池位图中查找出所记录的该完整待选号码的使用标识,以判断该完整待选号码是否已经被其他用户使用,从而从本次选号生成的全部完整待选号码中过滤出已经被其他用户使用的号码,将剩余号码作为初步筛选出的未被使用的初步选用号码,后续继续从该初步选用号码中再次筛选出本次选号数量的目标选用号码,从而快速完成客户的准确选号。
此外,由于本实施例在遍历出的局部待选号码触发选号边界或者达到遍历选号上限时,会退出本次遍历,此时可能存在号码前缀树未完成全部号码分支的遍历,便退出本次遍历,而使初步筛选出的初步选用号码不满足客户本次选号的数量要求的情况,因此本实施例在从完整待选号码中筛选出未被使用的初步选用号码之后,还可以包括:如果号码前缀树提前退出遍历,且初步选用号码的数量小于预设选号数量,则从号码前缀树的上一遍历退出节点开始,继续遍历号码前缀树,以得到可选号码位上新的局部待选号码,并生成新的完整待选号码,继续从新的完整待选号码中再次筛选未被使用的初步选用号码,直至初步选用号码的数量大于等于预设选号数量。
具体的,如果号码前缀树提前退出遍历,那么可能会存在初步筛选出的初步选用号码不满足客户本次选号的数量要求的情况,因此在从完整待选号码中初步筛选出未被使用的初步选用号码之后,如果初步选用号码的数量小于客户本次选号设定的预设选号数量,说明无法提供给客户足够的号码,此时本实施例可以首先分析出客户设置的选号规则在可选号码位上关联的号码前缀树在上次进行遍历时,提前退出遍历对应的上一遍历退出节点,进而从该号码前缀树的上一遍历退出节点开始,按照原有的遍历规则继续遍历号码前缀树中之前未被遍历过的其他号码节点,进而得到可选号码位上新的局部待选号码,并采用每一局部待选号码以及非可选号码位上的固定号码和各个卡池号码,计算出非可选号码位上每一局部待选号码和每一卡池号码对应的约束号码,并将每一局部待选号码、固定号码、卡池号码和对应的约束号码进行组合生成对应的新的完整待选号码,从而继续按照每一卡池号码对应的卡池位图再次筛选出新的完整待选号码中未被使用的初步选用号码,并判断所筛选出的全部初步选用号码的数量是否大于等于预设选号数量,若否则继续从上一遍历退出节点继续遍历该号码前缀树,直至初步选用号码的数量大于等于预设选号数量,后续从全部初步选用号码中随机筛选出预设选号数量的目标选用号码,提供给客户使用,保证本次选号的准确性和全面性。
S270,采用蓄水池采样算法从初步选用号码中再次筛选出预设选号数量的目标选用号码。
可选的,蓄水池采样算法为从一个数据规模为n的数据集中随机抽取不重复的k个数,使得每一个数被抽取到的概率为k/n。本实施例为了保证目标选用号码的选号随机性,本实施例会采用蓄水池采样算法从大量初步选用号码中再次筛选出预设选号数量的目标选用号码,使得每一个初步选用号码都存在等概率的机会被选中,从而保证本次选号的随机性。
此外,在再次筛选出预设选号数量的目标选用号码,提供给客户使用后,为了确保号码使用的准确性,本实施例还可以包括:根据目标选用号码更新对应卡池号码的卡池位图。
具体的,通过分析每一目标选用号码中包含的卡池号码,进而在该卡池号码对应的卡池位图中查找出该目标选用号码的原有使用标识,并对应修改该目标选用号码的原有使用标识,以在下次选号时,准确表示该目标选用号码已经被使用,无法再次选用,从而保证选号的唯一性。
本实施例提供的技术方案,通过构建选号规则在待选号段的可选号码位上关联的号码前缀树,通过号码前缀树的选号边界来遍历该号码前缀树,得到可选号码位上的局部待选号码,进而基于局部待选号码和待选号段的非可选号码位上的已有号码,计算非可选号码位上的约束号码,并生成对应的完整待选号码,后续从完整待选号码中筛选出符合预设选号要求的目标选用号码,此时在选号规则动态配置的情况下,所构建的号码前缀树也发生变化,使得任一选号规则下均采用相同的选号逻辑,无需重新从大量号码中筛选符合该动态配置的新规则下的号码再次进行匹配存储,极大减少了选号规则动态配置时的号码选择开销,从而提高号码选择效率。
实施例三
图3为本发明实施例三提供的一种号码选择的装置的结构示意图,如图3所示,该装置可以包括:
前缀树构建模块310,用于构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定号码前缀树的选号边界;
前缀树遍历模块320,用于根据选号边界遍历号码前缀树,得到可选号码位上的局部待选号码;
待选号码生成模块330,用于基于局部待选号码和待选号段的非可选号码位上的已有号码,计算非可选号码位上的约束号码,并生成对应的完整待选号码;
号码筛选模块340,用于从完整待选号码中筛选出符合预设选号要求的目标选用号码。
本实施例提供的技术方案,通过构建选号规则在待选号段的可选号码位上关联的号码前缀树,通过号码前缀树的选号边界来遍历该号码前缀树,得到可选号码位上的局部待选号码,进而基于局部待选号码和待选号段的非可选号码位上的已有号码,计算非可选号码位上的约束号码,并生成对应的完整待选号码,后续从完整待选号码中筛选出符合预设选号要求的目标选用号码,此时在选号规则动态配置的情况下,所构建的号码前缀树也发生变化,使得任一选号规则下均采用相同的选号逻辑,无需重新从大量号码中筛选符合该动态配置的新规则下的号码再次进行匹配存储,极大减少了选号规则动态配置时的号码选择开销,从而提高号码选择效率。
进一步的,上述前缀树遍历模块320,可以具体用于:
采用回溯算法遍历号码前缀树,并在每次遍历号码前缀树中下一深度下的号码节点时,采用洗牌算法从下一深度下的可选号码节点中确定当前遍历节点,直至遍历出的局部待选号码触发选号边界或者达到遍历选号上限,则停止遍历号码前缀树。
进一步的,上述待选号码生成模块330,可以具体用于;
根据待选号段确定非可选号码位上的固定号码和卡池号码;
基于局部待选号码、固定号码、卡池号码以及完整号码约束条件,计算非可选号码位上的约束号码。
进一步的,上述号码选择的装置,还可以包括:
卡池位图确定模块,用于确定每一卡池号码对应的卡池位图,该卡池位图中记录该卡池号码所在各个完整待选号码的使用标识;
相应的,上述号码筛选模块340,可以具体用于:
根据每一卡池号码的卡池位图,从完整待选号码中初步筛选出未被使用的初步选用号码;
采用蓄水池采样算法从初步选用号码中再次筛选出预设选号数量的目标选用号码。
进一步的,上述号码选择的装置,还可以包括:
重复遍历选号模块,用于如果号码前缀树提前退出遍历,且初步选用号码的数量小于预设选号数量,则从号码前缀树的上一遍历退出节点开始,继续遍历号码前缀树,以得到可选号码位上新的局部待选号码,并生成新的完整待选号码,继续从新的完整待选号码中再次筛选未被使用的初步选用号码,直至初步选用号码的数量大于等于预设选号数量。
进一步的,上述号码选择的装置,还可以包括:
位图更新模块,用于根据目标选用号码更新对应卡池号码的卡池位图。
进一步的,上述选号规则可以包括至少一个选号子规则;
相应的,上述号码选择的装置,还可以包括:
前缀树更新模块,用于如果选号规则中的选号子规则更换,则对应更新选号规则在待选号段的可选号码位上关联的号码前缀树。
本实施例提供的号码选择的装置可适用于本发明任意实施例提供的号码选择的方法,具备相应的功能和有益效果。
实施例四
图4为本发明实施例四提供的一种电子设备的结构示意图。如图4所示,该电子设备包括处理器40、存储装置41和通信装置42;电子设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;电子设备的处理器40、存储装置41和通信装置42可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储装置41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的号码选择的方法对应的模块。处理器40通过运行存储在存储装置41中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的号码选择的方法。
存储装置41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信装置42可用于实现电子设备间网络连接或者移动数据连接。
本实施例提供的一种电子设备可用于执行本发明任意实施例提供的号码选择的方法,具备相应的功能和有益效果。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现本发明任意实施例中的号码选择的方法。该方法具体可以包括:
构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定所述号码前缀树的选号边界;
根据选号边界遍历所述号码前缀树,得到可选号码位上的局部待选号码;
基于局部待选号码和待选号段的非可选号码位上的已有号码,计算非可选号码位上的约束号码,并生成对应的完整待选号码;
从完整待选号码中筛选出符合预设选号要求的目标选用号码。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的号码选择的方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述号码选择的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种号码选择的方法,其特征在于,包括:
构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定所述号码前缀树的选号边界;
采用回溯算法遍历所述号码前缀树,并在每次遍历所述号码前缀树中下一深度下的号码节点时,采用洗牌算法从下一深度下的可选号码节点中确定当前遍历节点,直至遍历出的局部待选号码触发所述选号边界或者达到遍历选号上限,则停止遍历所述号码前缀树,得到所述可选号码位上的局部待选号码;对所述待选号段进行分析,确定非可选号码位上的固定号码位上的固有号码和卡池号码位上的各个卡池号码;其中,所述卡池号码位是在所述非可选号码位中额外设定的一个号码位;
基于所述局部待选号码和所述待选号段的非可选号码位上的已有号码,计算所述非可选号码位上的约束号码,并生成对应的完整待选号码;
从所述完整待选号码中筛选出符合预设选号要求的目标选用号码;
其中,所述基于所述局部待选号码和所述待选号段的非可选号码位上的已有号码,计算所述非可选号码位上的约束号码,包括:
根据所述待选号段确定所述非可选号码位上的固定号码和卡池号码;
基于所述局部待选号码、固定号码、卡池号码以及完整号码约束条件,计算所述非可选号码位上的约束号码;
其中,所述从所述完整待选号码中筛选出符合预设选号要求的目标选用号码,包括:
根据每一卡池号码的卡池位图,从所述完整待选号码中初步筛选出未被使用的初步选用号码;
采用蓄水池采样算法从所述初步选用号码中再次筛选出预设选号数量的目标选用号码;其中,所述蓄水池采样算法为从一个数据规模为n的数据集中随机抽取不重复的k个数,使得每一个数被抽取到的概率为k/n;
其中,在从所述完整待选号码中筛选出符合预设选号要求的目标选用号码之前,还包括:
确定每一卡池号码对应的卡池位图,所述卡池位图中记录该卡池号码所在各个完整待选号码的使用标识。
2.根据权利要求1所述的方法,其特征在于,在从所述完整待选号码中筛选出未被使用的初步选用号码之后,还包括:
如果所述号码前缀树提前退出遍历,且所述初步选用号码的数量小于所述预设选号数量,则从所述号码前缀树的上一遍历退出节点开始,继续遍历所述号码前缀树,以得到所述可选号码位上新的局部待选号码,并生成新的完整待选号码,继续从新的完整待选号码中再次筛选未被使用的初步选用号码,直至所述初步选用号码的数量大于等于所述预设选号数量。
3.根据权利要求1所述的方法,其特征在于,在从所述完整待选号码中筛选出符合预设选号要求的目标选用号码之后,还包括:
根据所述目标选用号码更新对应卡池号码的卡池位图。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述选号规则包括至少一个选号子规则;
相应的,所述方法还包括:
如果所述选号规则中的选号子规则更换,则对应更新所述选号规则在待选号段的可选号码位上关联的号码前缀树。
5.一种号码选择的装置,其特征在于,包括:
前缀树构建模块,用于构建选号规则在待选号段的可选号码位上关联的号码前缀树,并根据待选号段确定所述号码前缀树的选号边界;
前缀树遍历模块,用于采用回溯算法遍历所述号码前缀树,并在每次遍历所述号码前缀树中下一深度下的号码节点时,采用洗牌算法从下一深度下的可选号码节点中确定当前遍历节点,直至遍历出的局部待选号码触发所述选号边界或者达到遍历选号上限,则停止遍历所述号码前缀树,得到所述可选号码位上的局部待选号码;
待选号码生成模块,用于对所述待选号段进行分析,确定非可选号码位上的固定号码位上的固有号码和卡池号码位上的各个卡池号码;其中,所述卡池号码位是在所述非可选号码位中额外设定的一个号码位;基于所述局部待选号码和所述待选号段的非可选号码位上的已有号码,计算所述非可选号码位上的约束号码,并生成对应的完整待选号码;
号码筛选模块,用于从所述完整待选号码中筛选出符合预设选号要求的目标选用号码;
其中,所述待选号码生成模块,具体用于;
根据待选号段确定非可选号码位上的固定号码和卡池号码;
基于局部待选号码、固定号码、卡池号码以及完整号码约束条件,计算非可选号码位上的约束号码;
所述号码筛选模块,具体用于:
根据每一卡池号码的卡池位图,从完整待选号码中初步筛选出未被使用的初步选用号码;
采用蓄水池采样算法从初步选用号码中再次筛选出预设选号数量的目标选用号码;其中,所述蓄水池采样算法为从一个数据规模为n的数据集中随机抽取不重复的k个数,使得每一个数被抽取到的概率为k/n;
其中,所述装置,还包括:
卡池位图确定模块,用于在从所述完整待选号码中筛选出符合预设选号要求的目标选用号码之前,确定每一卡池号码对应的卡池位图,所述卡池位图中记录该卡池号码所在各个完整待选号码的使用标识。
6.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的号码选择的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的号码选择的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010529824.3A CN111708921B (zh) | 2020-06-11 | 2020-06-11 | 一种号码选择的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010529824.3A CN111708921B (zh) | 2020-06-11 | 2020-06-11 | 一种号码选择的方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111708921A CN111708921A (zh) | 2020-09-25 |
CN111708921B true CN111708921B (zh) | 2024-04-26 |
Family
ID=72539677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010529824.3A Active CN111708921B (zh) | 2020-06-11 | 2020-06-11 | 一种号码选择的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708921B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592458B (zh) * | 2021-08-05 | 2024-01-12 | 百融云创科技股份有限公司 | 一种号码分配方法及装置 |
CN114841794A (zh) * | 2022-04-20 | 2022-08-02 | 中国银行股份有限公司 | 一种账号处理方法及装置、电子设备、存储介质 |
CN115915113B (zh) * | 2022-11-25 | 2024-04-16 | 中国联合网络通信集团有限公司 | 号段关联设备的确定方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090019185A (ko) * | 2007-08-20 | 2009-02-25 | 연세대학교 산학협력단 | 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템 |
CN105095263A (zh) * | 2014-05-08 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 卡号的生成方法及其装置 |
CN105956921A (zh) * | 2016-05-24 | 2016-09-21 | 中国银行股份有限公司 | 一种银行卡号自选方法及装置 |
CN108809641A (zh) * | 2018-04-18 | 2018-11-13 | 李世伟 | 主页标识号生成和应用方法及装置 |
CN108829650A (zh) * | 2018-06-01 | 2018-11-16 | 腾讯科技(北京)有限公司 | 一种卡号的生成方法、装置、服务器及存储介质 |
CN110475028A (zh) * | 2019-08-26 | 2019-11-19 | 广州讯鸿网络技术有限公司 | 一种千万级联系人的t9搜索方法、电子设备及存储介质 |
-
2020
- 2020-06-11 CN CN202010529824.3A patent/CN111708921B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090019185A (ko) * | 2007-08-20 | 2009-02-25 | 연세대학교 산학협력단 | 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템 |
CN105095263A (zh) * | 2014-05-08 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 卡号的生成方法及其装置 |
CN105956921A (zh) * | 2016-05-24 | 2016-09-21 | 中国银行股份有限公司 | 一种银行卡号自选方法及装置 |
CN108809641A (zh) * | 2018-04-18 | 2018-11-13 | 李世伟 | 主页标识号生成和应用方法及装置 |
CN108829650A (zh) * | 2018-06-01 | 2018-11-16 | 腾讯科技(北京)有限公司 | 一种卡号的生成方法、装置、服务器及存储介质 |
CN110475028A (zh) * | 2019-08-26 | 2019-11-19 | 广州讯鸿网络技术有限公司 | 一种千万级联系人的t9搜索方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111708921A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708921B (zh) | 一种号码选择的方法、装置、设备和存储介质 | |
CN106294614B (zh) | 用于访问业务的方法和装置 | |
US8849841B2 (en) | Memory circuit for Aho-corasick type character recognition automaton and method of storing data in such a circuit | |
US8326760B2 (en) | Computer-based collective intelligence recommendations for transaction review | |
CN112669138B (zh) | 数据处理方法及相关设备 | |
CN108089893A (zh) | 冗余资源的确定方法、装置、终端设备与存储介质 | |
JP2001274837A (ja) | データ・パケットを分類する方法および手段 | |
CN102867049B (zh) | 一种基于单词查找树实现的汉语拼音快速分词方法 | |
CN104994128B (zh) | 一种数据编码类型识别及转码方法和装置 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
CN110166344B (zh) | 一种身份标识识别方法、装置以及相关设备 | |
CN102148805A (zh) | 特征匹配方法和装置 | |
CN112347100B (zh) | 数据库索引优化方法、装置、计算机设备和存储介质 | |
CN105989457A (zh) | 一种信息查询方法及装置 | |
CN109144633A (zh) | 活动窗口的数据共享方法、装置、设备及存储介质 | |
CN105426392A (zh) | 一种协同过滤推荐方法及系统 | |
CN117541385A (zh) | 一种基于关联规则项的频繁金融交易挖掘方法和装置 | |
CN107463676B (zh) | 文本数据存储方法及装置 | |
CN112069305B (zh) | 数据筛选方法、装置及电子设备 | |
CN112801784A (zh) | 一种数字货币交易所的比特币地址挖掘方法及装置 | |
CN115759250A (zh) | 归因分析方法、装置、电子设备以及存储介质 | |
CN116127154A (zh) | 知识标签推荐方法、装置、电子设备及存储介质 | |
CN112417304B (zh) | 一种用于构建数据分析流程的数据分析服务推荐方法及系统 | |
US20170060998A1 (en) | Method and apparatus for mining maximal repeated sequence | |
CN114036345A (zh) | 一种轨迹数据的处理方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221008 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |