身份证号码中的数学

时间:2022-06-30 10:29:58

身份证号码中的数学

我们生活的地方随处可见数字编码,当然,和我们最休戚相关的,莫过于身份证号码了,

身份证是每一个公民的重要证件,而我们每个人,从一生下来开始就有了一个身份证号码,简直就是我们生活中的一部分,1985年我国开始实行居民身份证制度,当时签发的身份证数字编号是15位,1999年7月1日实施了新的标准,身份证的数字编号升级为18位,由17位数字本位码和1位校验码组成,

身份证前6位是地址码,前1、2位数字表示所在省份的代码,第3、4位数字表示所在城市的代码、第5、6位数字表示所在区县的代码,

身份证第7-14位是出生日期码,表示编码对象出生的年、月、日,分别用4位、2位、2位数字表示,例如:2007年5月11日表示为20070511。

身份证第15-17位是顺序码,表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号,其中第17位表示性别:奇数表示男性,偶数表示女性,

身份证的18位最有意思,是校验码,作为前17位的一种检验代码,校验码可用来识别身份证的真伪:如果你改变了前面某个数字而后面的校验码不相应改变,就会被计算机判断为非法身份证号码,那么,这位校验码是如何得出来的呢?

下面我们就来说明一下它的计算方法,

第一步,将前面17位身份证分别乘以不同的系数(可称为“加权因子”),其各位对应的加权因子依次为:

7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,

第二步,把得到的17个乘积相加求和(可称为“加权和”),

第三步,加权和除以11,求余数,

第四步,余数只能取0,1,2,3,4,5,6,7,8,9,10,根据余数值与校验码的对应关系即可确定出校验码,这11个余数对应的校验码依次为:1,0,x,9,8,7,6,5,4,3,2,即余数若为0,则最后的校验码取1:余数若为1,则最后的校验码取0。

需要解释的一点是,校验码中出现了一个“x”,x是罗马数字的10,为了保证身份证号码是18位,当检验码为“10”时,就用“x”代替了,通过上面提到的对应关系可知,如果前三步得到的余数是2,就会在身份证的第18位数字上出现X,

不妨举一个例子,某男性的身份证号码是34052419800101001X,我们看看这个身份证是不是合法的,首先:把前17位数字分别乘7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,并求和得:

3x7+4x9+OxlO+5x5+2x8+4x4+lx2+9xl+8x6+Ox3+Ox7+lx9+OxlO+lx5+Ox8+Ox4+lx2=189,

然后用189除以11得余数是2,最后通过对应规则可以知道,余数2对应的校验码是x,所以,这是一个合法的身份证号码,

显然,校验码的计算过程比较复杂,是由公安局的计算机根据上面的算法自动生成的,如果你有兴趣,不妨试着计算一下你自己身份证号码最后的校验码哦!

上一篇:小小“蝴蝶”撼飓风,有戏 下一篇:人类的救星