CN104936210A - 一种确定号码状态的方法及装置 - Google Patents
一种确定号码状态的方法及装置 Download PDFInfo
- Publication number
- CN104936210A CN104936210A CN201510188758.7A CN201510188758A CN104936210A CN 104936210 A CN104936210 A CN 104936210A CN 201510188758 A CN201510188758 A CN 201510188758A CN 104936210 A CN104936210 A CN 104936210A
- Authority
- CN
- China
- Prior art keywords
- subscript value
- subscript
- memory bitmap
- character string
- key assignments
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例公开了一种确定号码状态的方法及装置,涉及通信技术领域,能够提高查询手机号码是否产生3G上网流量的准确率。本发明实施例的方法包括:服务器获取号码在第一内存位图中对应的第一下标值和第二下标值;服务器根据第一下标值和第二下标值得到字符串;服务器根据字符串得到字符串在第二内存位图中对应的第三下标值和第四下标值;服务器根据预设规则设置第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值;服务器根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定号码的号码状态。本发明适用于确定号码状态。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种确定号码状态的方法及装置。
背景技术
随着通信技术的发展,尤其是网络的普及,大部分用户都会选择使用手机等移动终端进行上网,进而产生大量的上网流量信息。供应商为了从大量的上网流量信息中找到感兴趣的数据,需要先对大量的上网流量信息进行分析处理。在现有技术中,对于手机用户,供应商需要对手机号码进行存储、标记和查询等操作。
目前,服务器可以利用Hash算法在内存位图中对手机号码进行映射标记,但是在标记过程中会产生键值冲突。当需要映射标记的手机号码的数量较大时,在标记过程中产生键值冲突的概率也会提高。因此,在服务器利用Hash算法在内存位图中对手机号码进行标记之后,通过标记结果来确定手机号码是否产生3G上网流量的过程中,容易将没有产生3G上网流量的手机号码确定为产生了3G上网流量的手机号码。
发明内容
本发明实施例提供一种确定号码状态的方法及装置,能够提高查询手机号码是否产生3G上网流量的准确率。
为达到上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供一种确定号码状态的方法,所述方法包括:
服务器获取号码在第一内存位图中对应的第一下标值和第二下标值;
所述服务器根据所述第一下标值和所述第二下标值得到字符串;
所述服务器根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值;
所述服务器根据预设规则设置所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,所述预设规则用于区分产生号码状态信息的号码和未产生号码状态信息的号码;
所述服务器根据所述第一内存位图中所述第一下标值对应位置的键值和所述第二下标值对应位置的键值,以及所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,确定所述号码的号码状态。
第二方面,本发明实施例提供一种确定号码状态的装置,所述装置包括:
获取模块,用于获取号码在第一内存位图中对应的第一下标值和第二下标值;
生成模块,用于根据所述第一下标值和所述第二下标值得到字符串;
计算模块,用于根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值;
设置模块,用于根据预设规则设置所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,所述预设规则用于区分产生号码状态信息的号码和未产生号码状态信息的号码;
确定模块,用于根据所述第一内存位图中所述第一下标值对应位置的键值和所述第二下标值对应位置的键值,以及所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,确定所述号码的号码状态。
本发明实施例提供的一种确定号码状态的方法及装置,服务器获取号码在第一内存位图中对应的第一下标值和第二下标值,根据第一下标值和第二下标值得到字符串,并根据字符串得到字符串在第二内存位图中对应的第三下标值和第四下标值,之后根据预设规则设置第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值。服务器根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定号码的号码状态。相比较于现有技术,本发明实施例可以通过在双内存位图中对手机号码进行映射标记,之后根据四个下标值对应位置的键值来确定手机号码是否产生3G上网流量。而不是在单内存位图中对手机号码进行映射标记,仅根据两个下标值对应位置的键值来确定手机号码是否产生3G上网流量。从而,提高查询手机号码是否产生3G上网流量的准确率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种确定号码状态的方法的流程图;
图2为本发明实施例提供的另一种确定号码状态的方法的流程图;
图3为本发明实施例提供的另一种确定号码状态的方法的流程图;
图4为本发明实施例提供的一种具体应用场景下的结构示意图;
图5为本发明实施例提供的另一种确定号码状态的方法的流程图;
图6为本发明实施例提供的另一种确定号码状态的方法的流程图;
图7为本发明实施例提供的一种确定号码状态的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”和“所述”也旨在包括多数形式,除非上下文清楚地表示其他含义。
本发明适用于确定号码状态,其中,号码状态可以包括:号码是否产生3G(3rd Generation,第三代数字通信)上网流量、号码是否产生漫游数据等。为了方便描述,在本发明实施例中,以确定手机号码是否产生3G上网流量为例进行说明。
本发明实施例提供一种确定号码状态的方法,如图1所示,所述方法包括:
101、服务器获取号码在第一内存位图中对应的第一下标值和第二下标值。
当需要通过映射来标记的手机号码的数量为1.93亿个时,服务器可以申请一个3亿bit位的内存位图,将内存位图中的所有下标值对应位置的键值初始化为0。服务器逐行读取1.93亿个手机号码对应的上网流量信息记录,并解析出手机号码和手机号码所产生的3G上网流量的数据。服务器判断每条信息所记录的手机号码使用的3G上网流量是否大于0,当手机号码使用的3G上网流量大于0时,根据手机号码使用两个不同的Hash函数(哈希函数)计算出两个下标值,即第一下标值和第二下标值,在内存位图中找到这两个下标值对应位置,同时将这两个下标值对应位置的键值设置为1;当手机号码使用的3G上网流量小于0时,不进行键值设置。重复上述操作,直到将存储的1.93亿个手机号码对应的上网流量信息全部映射到内存位图中。
服务器需要使用两个不相同的Hash函数,对手机号码是否产生3G上网流量进行标记,比如:服务器使用Hash函数1和Hash函数2来计算手机号码
18612345678在第一内存位图中对应的第一下标值和第二下标值,其中,第一内存位图为上述3亿bit位的内存位图;通过Hash函数1计算得到的为第一下标值,
通过Hash函数2计算得到的为第二下标值。
使用两个Hash函数计算下标值的过程,如表一所示:
表一
使用Hash函数1计算第一下标值的计算步骤如下:
获取手机号码18612345678,并对所获取的手机号码18612345678进行预处理,其中,预处理之后的手机号码和原手机号码相同;将预处理之后的手机号码按照MD5(Message-Digest Algorithm 5,信息-摘要算法5)计算,得到6e2b1ca3675119d8edbad42d6d589817;计算Hash值,得到-479003662;将Hash值和整形最大值MAX_INT相与,得到1668479986;将上述相与的结果1668479986对3亿取模,得到第一下标值168479986。
使用Hash函数2计算第二下标值的计算步骤和使用Hash函数1计算第一下标值的计算步骤类似,其中,预处理后的结果不同,使用Hash函数1的计算过程中,手机号码预处理之后得到的手机号码和原手机号码相同,使用Hash函数2的计算过程中,手机号码预处理之后得到的手机号码是将原手机号码的前三位移到后三位得到的。
需要说明的是,由于Hash值可能为负数,为了方便映射,可以将Hash值通过计算得到非负整数,比如:通过将Hash值和整形最大值MAX_INT相与得到非负整数;由于第一内存位图占用3亿bit位的存储空间,在计算过程中,通过将相与的结果对3亿取模来确保计算得到的下标值在[0,3亿)的区间范围内,从而保证计算得到的下标值在第一内存位图所占用的存储空间对应的位置中。
102、所述服务器根据所述第一下标值和所述第二下标值得到字符串。
根据上述步骤101中得到的第一下标值168479986和第二下标值73579646可以得到字符串168479986_73579646、字符串168479986*73579646或其他形式的字符串。
103、所述服务器根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值。
和上述步骤101中的计算方法类似,可以通过Hash函数3和Hash函数4,或通过其他两个不同的散列函数计算得到字符串在第二内存位图中对应的第三下标值和第四下标值,还可以通过其他方式对字符串进行处理,从而得到字符串在第二内存位图中对应的第三下标值和第四下标值。
104、所述服务器根据预设规则设置所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值。
其中,所述预设规则用于区分产生号码状态信息的号码和未产生号码状态信息的号码。例如:预设规则可以用于区分产生3G上网流量的手机号码和未产生3G上网流量的手机号码,当手机号码产生3G上网流量时,在第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值设置为1;当手机号码未产生3G上网流量时,在第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值保持不变。或者,预设规则还可以用于区分产生漫游数据的手机号码和未产生漫游数据的手机号码,当手机号码产生漫游数据时,在第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值设置为1;当手机号码未产生漫游数据时,在第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值保持不变。
在本发明实施例中,号码状态信息可以是产生3G上网流量的信息。服务器可以根据预设规则分别设置产生3G上网流量的手机号码在第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,以及未产生3G上网流量的手机号码在第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值。
105、所述服务器根据所述第一内存位图中所述第一下标值对应位置的键值和所述第二下标值对应位置的键值,以及所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,确定所述号码的号码状态。
在执行完毕步骤101-104之后,在查询手机号码是否产生3G上网流量的过程中,需要通过步骤101中的Hash函数1和Hash函数2计算得到手机号码对应的第一下标值和第二下标值,并获取第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值;再通过步骤103计算得到字符串对应的第三下标值和第四下标值,也就是手机号码在第二内存位图中的第三下标值和第四下标值,并获取第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值;根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定手机号码是否产生3G上网流量。比如:当第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值都为1时,手机号码产生3G上网流量;当第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值中任意一个键值不为1时,手机号码未产生3G上网流量。
本发明实施例提供的一种确定号码状态的方法,服务器获取号码在第一内存位图中对应的第一下标值和第二下标值,根据第一下标值和第二下标值得到字符串,并根据字符串得到字符串在第二内存位图中对应的第三下标值和第四下标值,之后根据预设规则设置第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值。服务器根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定号码的号码状态。相比较于现有技术,本发明实施例可以通过在双内存位图中对手机号码进行映射标记,之后根据四个下标值对应位置的键值来确定手机号码是否产生3G上网流量。而不是在单内存位图中对手机号码进行映射标记,仅根据两个下标值对应位置的键值来确定手机号码是否产生3G上网流量。从而,提高查询手机号码是否产生3G上网流量的准确率。
在本发明实施例的另一实现方式中,在如图1所示的实现方式的基础上,步骤103还可以具体实现为如图2所示的步骤1031:
1031、所述服务器将所述字符串通过散列函数计算得到所述字符串在第二内存位图中对应的所述第三下标值和所述第四下标值。
需要说明的是,第一下标值、第二下标值、第三下标值和第四下标值均可以使用散列函数计算得到。对于同一个号码,当使用相同的散列函数计算同一内存位图中的下标值时,会得到相同的结果,因此,为了降低产生键值冲突的概率,用于计算第一下标值和第二下标值的散列函数不相同,用于计算第三下标值和第四下标值的散列函数不相同。
本发明实施例提供的一种确定号码状态的方法,服务器获取号码在第一内存位图中对应的第一下标值和第二下标值,根据第一下标值和第二下标值得到字符串,并将字符串通过散列函数计算得到字符串在第二内存位图中对应的第三下标值和第四下标值,之后根据预设规则设置第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值。服务器根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定号码的号码状态。相比较于现有技术,本发明实施例可以通过在双内存位图中对手机号码进行映射标记,其中,将字符串映射的方法也是使用散列函数,通过计算得到第三下标值和第四下标值,从而实现手机号码在第二内存位图中的映射,之后根据四个下标值对应位置的键值来确定手机号码是否产生3G上网流量。而不是在单内存位图中对手机号码进行映射标记,仅根据两个下标值对应位置的键值来确定手机号码是否产生3G上网流量。从而,提高查询手机号码是否产生3G上网流量的准确率。
在本发明实施例的另一个实现方式中,将字符串映射到第二内存位图时,第三下标值对应位置位于第二内存位图的前X位,而第四下标值对应位置位于第二内存位图中除了前X位以外的位置。因此,在如图2所示的实现方式的基础上,还可以实现为如图3所示的实现方式,其中,步骤1031可以具体实现为步骤10311-10313:
10311、所述服务器将所述字符串通过第一散列函数计算得到所述字符串在所述第二内存位图的所述前X位中对应的所述第三下标值。
10312、所述服务器将所述字符串通过第二散列函数计算得到所述字符串在所述第二内存位图中对应的第四下标可能值。
10313、所述服务器将所述第四下标可能值和所述X通过计算得到所述字符串在所述第二内存位图中除了所述前X位以外的位置对应的所述第四下标值。
使用步骤101中类似的方法,计算字符串在第二内存位图对应的第三下标值和第四下标可能值,之后根据计算得到的第四下标可能值和X,得到第四下标值。如图4所示,通过将第二内存位图划分为前X位和除了前X位以外的位置,并分别将字符串映射到第二内存位图前X位和第二内存位图中除了前X位以外的位置,可以确保手机号码对应的字符串经过散列函数计算得到的第三下标值对应于第二内存位图前X位,而经过散列函数计算得到的第四下标值对应于第二内存位图中除了前X位以外的位置,减少了经过散列函数计算的结果都集中在第二内存位图的前X位或除了前X位以外的位置,从而降低了键值冲突的概率。
需要说明的是,在优选方案中,X的值可以设置为第二内存位图所占bit位的一半,比如:第二内存位图所占存储空间为3亿bit,X的值可以为1.5亿。此外,图3所示的步骤执行顺序只是一种示意,在该实现方式中,对于步骤10311和步骤10312-10313的执行顺序并不做特别的限定。因此,步骤10311和步骤10312-10313可以同时进行;或者先执行步骤10311,再执行步骤10312-10313;或者先执行步骤10312-10313,再执行步骤10311。
例如:使用步骤101中的Hash函数1和Hash函数2计算得到下标值code1和下标值code2,具体计算过程,如表二所示:
表二
根据表二中得到的下标值code1和下标值code2,可以得到字符串code1_code2,也就是字符串73347002_28255597。使用类似步骤101中的Hash函数1和Hash函数2的计算方法,得到下标值code3和下标值code4,具体计算过程,如表三所示:
表三
在本发明实施例中,下标值code3对应位置是第二内存位图的前X位中任一位置,下标值code4对应位置是第二内存位图中除了前X位以外的位置中的任一位置。表二是将和MAX_INT相与的结果1273347002,以及628255597分别对3亿取模,得到下标值code1和code2;表三是将和MAX_INT相与的结果149667983,以及1049856612分别对1.5亿取模,得到下标值code3和第四下标可能值,之后将得到的第四下标可能值加上1.5亿,得到下标值code4。
本发明实施例提供的一种确定号码状态的方法,服务器获取号码在第一内存位图中对应的第一下标值和第二下标值,根据第一下标值和第二下标值得到字符串,并根据字符串得到字符串在第二内存位图中对应的第三下标值和第四下标值,之后根据预设规则设置第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值。服务器根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定号码的号码状态。其中,第三下标值对应位置位于第二内存位图的前X位,而第四下标值对应位置位于第二内存位图中除了前X位以外的位置。相比较于现有技术,本发明实施例可以通过在双内存位图中对手机号码进行映射标记,其中,将字符串进行映射标记的过程中,由于第三下标值对应位置位于第二内存位图的前X位,而第四下标值对应位置位于第二内存位图中除了前X位以外的位置,避免了第三下标值对应位置和第四下标值对应位置相同的情况,从而降低了第二内存位图中产生键值冲突的概率,之后根据四个下标值对应位置的键值来确定手机号码是否产生3G上网流量。而不是在单内存位图中对手机号码进行映射标记,仅根据两个下标值对应位置的键值来确定手机号码是否产生3G上网流量。从而,提高查询手机号码是否产生3G上网流量的准确率。
在本发明实施例的另一个实现方式中,可以通过将第二内存位图中所有位置的键值初始化,并根据冲突规则修改第三下标对应位置的键值和第四下标对应位置的键值,从而完成号码的映射标记过程。因此,在如图1所示的实现方式的基础上,还可以实现为如图5所示的实现方式,其中,在步骤102所述服务器根据所述第一下标值和所述第二下标值得到字符串和步骤103所述服务器根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值之间,还可以包括步骤106,且步骤104所述服务器根据预设规则设置所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值可以具体实现为步骤1041:
106、所述服务器将所述第二内存位图中所有位置的键值初始化为0。
1041、所述服务器根据所述预设规则,将产生所述号码状态信息的号码对应的第三下标值对应位置的键值和第四下标值对应位置的键值设置为1。
如图4所示的手机号码为产生了3G上网流量的手机号码,在执行完毕步骤106之后,使用2个不同的散列函数对手机号码进行处理,得到第一下标值和第二下标值,之后将第一内存位图中第一下标值对应位置的键值设置为1,并将第一内存位图中第二下标值对应位置的键值设置为1;根据第一下标值和第二下标值,得到字符串,使用2个不同的散列函数对字符串进行处理,得到第三下标值和第四下标值,之后将第二内存位图中第三下标值对应位置的键值设置为1,并将第二内存位图中第四下标值对应位置的键值设置为1。
分别按照单内存位图映射和双内存位图映射两种方法,对相同的手机号码进行标记和查询,实验结果如表四所示:
表四
从表四所示的实验结果中,可以得出:
对相同的193080812个手机号码,使用双内存位图映射的方法对手机号码进行标记所占用的时间比使用单内存位图映射的方法对手机号码进行标记所占用的时间长2分钟,且双内存位图占用的内存比单内存位图占用的内存多39MB。但是,在查询手机号码是否产生3G上网流量时,使用双内存位图映射的方法对手机号码进行标记之后,查询到的产生3G上网流量的手机号码的数量为98462056,使用单内存位图映射的方法对手机号码进行标记之后,查询到的产生3G上网流量的手机号码的数量为115320797,而实际产生3G上网流量的手机号码的数量为93806567。根据上述使用两种方法进行标记之后,查询到的产生3G上网流量的手机号码的数量和实际产生3G上网流量的手机号码的数量,通过计算可以得到,使用单内存位图映射的方法对手机号码进行标,在查询过程中出现关键字冲突的概率为22.93%;使用双内存位图映射的方法对手机号码进行标,在查询过程中出现关键字冲突的概率为4.96%。也就是说,使用双内存位图映射的方法对手机号码进行标在查询过程中的准确率,远远高于使用单内存位图映射的方法对手机号码进行标。
本发明实施例提供的一种确定号码状态的方法,服务器获取号码在第一内存位图中对应的第一下标值和第二下标值,根据第一下标值和第二下标值得到字符串,并根据字符串得到字符串在第二内存位图中对应的第三下标值和第四下标值,之后根据预设规则将已经完成初始化的第二内存位图中,产生号码状态信息的号码对应的第三下标值对应位置的键值和第四下标值对应位置的键值设置为1。服务器根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定号码的号码状态。相比较于现有技术,本发明实施例可以通过在双内存位图中对手机号码进行映射标记,其中,通过将第二内存位图中所有位置的键值初始化为0,并将产生3G上网流量的手机号码对应的第三下标值对应位置的键值和第四下标值对应位置的键值设置为1来完成手机号码在第二内存位图中的映射标记,也就是用下标值对应位置的键值为0或1来区分手机号码的状态,之后根据四个下标值对应位置的键值来确定手机号码是否产生3G上网流量。而不是在单内存位图中对手机号码进行映射标记,仅根据两个下标值对应位置的键值来确定手机号码是否产生3G上网流量。从而,提高查询手机号码是否产生3G上网流量的准确率。
在本发明实施例的另一个实现方式中,字符串可以通过将第一下标值的最后一位字符和第二下标值的第一位字符通过非数字的字符连接来生成。因此,在如图1所示的实现方式的基础上,步骤102还可以具体实现为如图6所示的步骤1021:
1021、所述服务器将所述第一下标值的最后一位字符和所述第二下标值的第一位字符用连接符连接,所述连接符为非数字的字符。
服务器获取手机号码使用2个不同的散列函数计算得到的第一下标值和第二下标值,并将第一下标值的字符和第二下标值的字符相连接。在本发明实施例中,可以在第一下标值的最后一位字符和第二下标之的第一位字符之间添加非数字的字符作为连接符,连接符可以是“_”、“*”、“&”等其他非数字字符。
本发明实施例提供的一种确定号码状态的方法,服务器获取号码在第一内存位图中对应的第一下标值和第二下标值,服务器将第一下标值的最后一位字符和第二下标值的第一位字符用非数字的字符连接,得到字符串,并根据字符串得到字符串在第二内存位图中对应的第三下标值和第四下标值,之后根据预设规则设置第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值。服务器根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定号码的号码状态。相比较于现有技术,本发明实施例可以通过在双内存位图中对手机号码进行映射标记,之后根据四个下标值对应位置的键值来确定手机号码是否产生3G上网流量。而不是在单内存位图中对手机号码进行映射标记,仅根据两个下标值对应位置的键值来确定手机号码是否产生3G上网流量。从而,提高查询手机号码是否产生3G上网流量的准确率。
本发明实施例提供一种确定号码状态的装置20,如图7所示,所述装置20包括:
获取模块21,用于获取号码在第一内存位图中对应的第一下标值和第二下标值。
生成模块22,用于根据所述第一下标值和所述第二下标值得到字符串。
计算模块23,用于根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值。
设置模块24,用于根据预设规则设置所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,所述预设规则用于区分产生号码状态信息的号码和未产生号码状态信息的号码。
确定模块25,用于根据所述第一内存位图中所述第一下标值对应位置的键值和所述第二下标值对应位置的键值,以及所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,确定所述号码的号码状态。
在本发明实施例的另一个实现方式中,所述计算模块23,包括:
计算单元231,用于将所述字符串通过散列函数计算得到所述字符串在第二内存位图中对应的所述第三下标值和所述第四下标值。
在本发明实施例的另一个实现方式中,所述第三下标值对应位置位于所述第二内存位图的前X位;所述计算单元231,具体用于将所述字符串通过第一散列函数计算得到所述字符串在所述第二内存位图的所述前X位中对应的所述第三下标值;
将所述字符串通过第二散列函数计算得到所述字符串在所述第二内存位图中对应的第四下标可能值,并将根据所述第四下标可能值和所述X通过计算得到所述字符串在所述第二内存位图中除了所述前X位以外的位置对应的所述第四下标值。
在本发明实施例的另一个实现方式中,所述设置模块24,还用于将所述第二内存位图中所有位置的键值初始化为0。
所述计算模块23,具体用于根据所述预设规则,将产生所述号码状态信息的号码对应的第三下标值对应位置的键值和第四下标值对应位置的键值设置为1。
在本发明实施例的另一个实现方式中,所述生成模块22,具体用于将所述第一下标值的最后一位字符和所述第二下标值的第一位字符用连接符连接,所述连接符为非数字的字符。
本发明实施例提供的一种确定号码状态的装置,服务器获取号码在第一内存位图中对应的第一下标值和第二下标值,根据第一下标值和第二下标值得到字符串,并根据字符串得到字符串在第二内存位图中对应的第三下标值和第四下标值,之后根据预设规则设置第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值。服务器根据第一内存位图中第一下标值对应位置的键值和第二下标值对应位置的键值,以及第二内存位图中第三下标值对应位置的键值和第四下标值对应位置的键值,确定号码的号码状态。相比较于现有技术,本发明实施例可以通过在双内存位图中对手机号码进行映射标记,之后根据四个下标值对应位置的键值来确定手机号码是否产生3G上网流量。而不是在单内存位图中对手机号码进行映射标记,仅根据两个下标值对应位置的键值来确定手机号码是否产生3G上网流量。从而,提高查询手机号码是否产生3G上网流量的准确率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种确定号码状态的方法,其特征在于,所述方法包括:
服务器获取号码在第一内存位图中对应的第一下标值和第二下标值;
所述服务器根据所述第一下标值和所述第二下标值得到字符串;
所述服务器根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值;
所述服务器根据预设规则设置所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,所述预设规则用于区分产生号码状态信息的号码和未产生号码状态信息的号码;
所述服务器根据所述第一内存位图中所述第一下标值对应位置的键值和所述第二下标值对应位置的键值,以及所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,确定所述号码的号码状态。
2.根据权利要求1所述的方法,其特征在于,所述服务器根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值,包括:
所述服务器将所述字符串通过散列函数计算得到所述字符串在第二内存位图中对应的所述第三下标值和所述第四下标值。
3.根据权利要求2所述的方法,其特征在于,所述第三下标值对应位置位于所述第二内存位图的前X位;所述服务器将所述字符串通过散列函数计算得到所述字符串在第二内存位图中对应的所述第三下标值和所述第四下标值,包括:
所述服务器将所述字符串通过第一散列函数计算得到所述字符串在所述第二内存位图的前X位中对应的所述第三下标值;
所述服务器将所述字符串通过第二散列函数计算得到所述字符串在所述第二内存位图中对应的第四下标可能值,并将所述第四下标可能值和所述X通过计算得到所述字符串在所述第二内存位图中除了所述前X位以外的位置对应的所述第四下标值。
4.根据权利要求1所述的方法,其特征在于,在所述服务器根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值之前,所述方法还包括:
所述服务器将所述第二内存位图中所有位置的键值初始化为0;
所述服务器根据预设规则设置所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,包括:
所述服务器根据所述预设规则,将产生所述号码状态信息的号码对应的第三下标值对应位置的键值和第四下标值对应位置的键值设置为1。
5.根据权利要求1所述的方法,其特征在于,所述服务器根据所述第一下标值和所述第二下标值得到字符串,包括:
所述服务器将所述第一下标值的最后一位字符和所述第二下标值的第一位字符用连接符连接,所述连接符为非数字的字符。
6.一种确定号码状态的装置,其特征在于,所述装置包括:
获取模块,用于获取号码在第一内存位图中对应的第一下标值和第二下标值;
生成模块,用于根据所述第一下标值和所述第二下标值得到字符串;
计算模块,用于根据所述字符串得到所述字符串在第二内存位图中对应的第三下标值和第四下标值;
设置模块,用于根据预设规则设置所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,所述预设规则用于区分产生号码状态信息的号码和未产生号码状态信息的号码;
确定模块,用于根据所述第一内存位图中所述第一下标值对应位置的键值和所述第二下标值对应位置的键值,以及所述第二内存位图中所述第三下标值对应位置的键值和所述第四下标值对应位置的键值,确定所述号码的号码状态。
7.根据权利要求6所述的装置,其特征在于,所述计算模块,包括:
计算单元,用于将所述字符串通过散列函数计算得到所述字符串在第二内存位图中对应的所述第三下标值和所述第四下标值。
8.根据权利要求7所述的装置,其特征在于,所述第三下标值对应位置位于所述第二内存位图的前X位;所述计算单元,具体用于将所述字符串通过第一散列函数计算得到所述字符串在所述第二内存位图的前X位中对应的所述第三下标值;
将所述字符串通过第二散列函数计算得到所述字符串在所述第二内存位图中对应的第四下标可能值,并将所述第四下标可能值和所述X通过计算得到所述字符串在所述第二内存位图中除了所述前X位以外的位置对应的所述第四下标值。
9.根据权利要求6所述的装置,其特征在于,所述设置模块,还用于将所述第二内存位图中所有位置的键值初始化为0;
所述计算模块,具体用于根据所述预设规则,将产生所述号码状态信息的号码对应的第三下标值对应位置的键值和第四下标值对应位置的键值设置为1。
10.根据权利要求6所述的装置,其特征在于,所述生成模块,具体用于将所述第一下标值的最后一位字符和所述第二下标值的第一位字符用连接符连接,所述连接符为非数字的字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510188758.7A CN104936210B (zh) | 2015-04-20 | 2015-04-20 | 一种确定号码状态的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510188758.7A CN104936210B (zh) | 2015-04-20 | 2015-04-20 | 一种确定号码状态的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104936210A true CN104936210A (zh) | 2015-09-23 |
CN104936210B CN104936210B (zh) | 2018-04-10 |
Family
ID=54123112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510188758.7A Active CN104936210B (zh) | 2015-04-20 | 2015-04-20 | 一种确定号码状态的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104936210B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389123B1 (en) * | 1999-11-08 | 2002-05-14 | Lucent Technologies Inc. | Decreased-size representation employed with portion of automated number identification information in determination of network control point address |
CN1437374A (zh) * | 2003-01-20 | 2003-08-20 | 广东省电信公司科学技术研究院 | 一种高效拆分长途电话区号的方法 |
CN101707750A (zh) * | 2009-10-12 | 2010-05-12 | 南京联创科技集团股份有限公司 | 基于跨运营商短信应用的流量控制方法 |
CN103345521A (zh) * | 2013-07-17 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN103778452A (zh) * | 2014-01-10 | 2014-05-07 | 惠州Tcl移动通信有限公司 | 一种基于手机的二维码编码和解码的方法及*** |
CN104486777A (zh) * | 2014-12-01 | 2015-04-01 | 中国联合网络通信集团有限公司 | 一种实现数据处理的方法及装置 |
-
2015
- 2015-04-20 CN CN201510188758.7A patent/CN104936210B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389123B1 (en) * | 1999-11-08 | 2002-05-14 | Lucent Technologies Inc. | Decreased-size representation employed with portion of automated number identification information in determination of network control point address |
CN1437374A (zh) * | 2003-01-20 | 2003-08-20 | 广东省电信公司科学技术研究院 | 一种高效拆分长途电话区号的方法 |
CN101707750A (zh) * | 2009-10-12 | 2010-05-12 | 南京联创科技集团股份有限公司 | 基于跨运营商短信应用的流量控制方法 |
CN103345521A (zh) * | 2013-07-17 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN103778452A (zh) * | 2014-01-10 | 2014-05-07 | 惠州Tcl移动通信有限公司 | 一种基于手机的二维码编码和解码的方法及*** |
CN104486777A (zh) * | 2014-12-01 | 2015-04-01 | 中国联合网络通信集团有限公司 | 一种实现数据处理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104936210B (zh) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105528372B (zh) | 一种地址搜索方法和设备 | |
CN109977935A (zh) | 一种文本识别方法及装置 | |
CN108985934B (zh) | 区块链修改方法和装置 | |
CN106156070B (zh) | 一种查询方法、文件合并方法与相关装置 | |
CN107516038A (zh) | 一种确定设备指纹的方法及装置 | |
CN103049355B (zh) | 一种数据库***恢复方法及设备 | |
CN106326309A (zh) | 一种数据查询方法和装置 | |
CN109558525A (zh) | 一种测试数据集的生成方法、装置、设备和存储介质 | |
CN103218555A (zh) | 应用程序登录方法及装置 | |
CN104809183A (zh) | 一种数据读取及写入的方法和装置 | |
CN114610951A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN106648643A (zh) | 渠道包生成方法及装置、终端和服务器 | |
CN106792699A (zh) | 一种无线保真Wi‑Fi连接方法及移动终端 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN106802958A (zh) | Cad数据到gis数据的转换方法及*** | |
CN104601645A (zh) | 一种数据包处理方法及装置 | |
CN108959984A (zh) | 智能卡数据写入方法及装置 | |
CN105389398A (zh) | 照片拍摄、查找方法及装置 | |
CN104827780A (zh) | 一种打印方法和打印平台 | |
CN104679660A (zh) | 基于符号表的嵌入式***调试方法和装置 | |
CN104936210A (zh) | 一种确定号码状态的方法及装置 | |
CN108241696A (zh) | 获得地图数据的方法、装置及*** | |
CN109144853B (zh) | 一种软件定义无线电SoC芯片调试*** | |
CN108259340B (zh) | 一种拓扑信息传输方法和装置 | |
CN110362540A (zh) | 一种数据存储、访客数获取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |