目录
What is Check digit?
以人人都有,人人都必须要记得的身份证举例,18位数字组合的方式是:
4个码解释:
- 地址码
对于内地户籍居民,地址码是公民首次获得身份号码(例如新生儿出生登记、无户口人员登记户口)时所在县(市、镇、区)的行政区划代码,如110102是北京市西城区,如果日后行政区划出现调整或将户口迁往外地地址码也不会改变。由于新生儿通常根据属人主义确定户籍,故地址码并不总能代表公民的出生地。
对于港澳台居民,地址码根据居民的实际身份分配香港、澳门或台湾的行政区划代码,只精确到省级,第三位至第六位全部为0。[1][2][3] - 出生日期码
表示公民出生的公历年(4位)、月(2位)、日(2位)。 - 顺序码
是给同地址码同出生日期码的人编定的顺序号,其中奇数分配给男性,偶数分配给女性。 - 校验码
这里采用的是ISO 7064:1983, MOD 11-2校验码系统。校验码为一位数,但如果最后采用校验码系统计算的校验码是“10”,碍于身份证号码为18位的规定,则以“X”代替校验码“10”。
思考:这个校验码是什么?怎么计算出来的?
校验码的原理
身份证的最后一位数字就是验证码,是通过前面的数字进行简单的数学运算后计算出来的。下面我们就来看一下它究竟是怎么算出来的,为什么要进行这样的运算。
为什么会有 X?
最后一位只能有:1-10 里面任意一个数字。
身份证后面的X并不是字母X,而是罗马数字里的10。为什么不写10呢?因为如果是10,写出来身份证号码就变成19位了。在编码学中,不一样的数位就不太容易存储或者使用。
那么问题来了,那为什么最后一位的校验码会算出10呢?怎么能算出1-10?
需要了解一下弃九数
弃九数的验算启发
什么叫弃九数?
比如有一个数字是3217
,
- 如果把它每一位上的数字连续相加,3加2加1加7等于13。
- 继续把13的每一位上的数字相加,1加3等于4。
- 直到得到个位数字4为止,这个
4
就叫做3217的弃九数。
(其实这个弃九数就是3217除以9之后的余数,只不过这种连续相加是一种快速算法,很早以前的数学家就知道了。)
弃九数有什么用呢?
它关键是要检验运算是否准确。 这个时候就有弃九法了,大家想一想,平常在计算加减乘除运算的时候,是不是经常容易算错?古人就很聪明,发明了弃九法。
比如,
现在要检查一个乘法运算:3169乘以732等于2319708是否准确?
如果没有别的方法的话,只能把它重新算一遍。
但是弃九法是怎么检验的?首先把3169的弃九数求出来,它是1。就是把每一位连续相加,最后得到个位数字1。
732它的弃九数是3。
2319708的弃九数是3。
最后,(用等式迁移的思维)我们看一下,1乘以3是不是等于3,结果是准确的。 1 * 3 = 3
这说明前面非常大的数字的乘法运算,大概率是正确的。但是如果用弃九法检验是错误的,说明前面的运算一定是错误的。
这就是古人的验算方法,充满了智慧(智慧一定不是指莽干)。
数学家只是有高维优势,普通计算都一样菜!
古代也有很多工程类计算,需要达到高精度的运算,前辈的数学家也需要检验。即使是一流的数学家,他也只是比普通人在考虑高维问题的时候具有优势。但是如果是比纯粹的加减乘除运算,数学家相对普通人来讲,其实他们的差别并不大。
弃九法和同余理论的关系
在弃九法发展的过程中,数学家们逐渐还认识到了弃七法、弃十一法、弃十三法等。这些方法其实都属于今天初等数论中的同余理论。
初等数论的教学大纲(高中数学课本):
什么是同余理论?
(这里只是初步入门介绍)
这种同余理论在我们日常生活中比较常见的服务是什么?
是计算校验码。 回归到正题了,身份证最后一位就是校验码。
注意:我说的校验码和你手机里的短信验证码,不是一码事,不是一个概念!注意区分。
为什么需要校验码?
和我们生活最息息相关的校验码就在身份证上。我们平常在手机或者电脑经常需要输入身份证号码,假如没有校验码,就是输入17位数字,很容易发生不小心有一位输错了,键盘的数字挨着近,或者某两位颠倒位置的情况。 那么有了第18位校验码,就能及时发现这种情况。正是因为一个小小的校验码,就可以保证整个系统的安全性。
身份证的校验码计算步骤(文字描述版):
那它是怎么算的?主要分三步:
- 首先身份证号码总共是17位,把前17位号码依次乘以不同的系数。比如第一位乘以7,第二位乘以9,第三位乘以10,以此类推,这在数学上叫做
加权因子
。相同两位加权因子不一样,是为了区分数位。(加权因子的作用)
系数为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2
更通俗的说:第1位*7、第2位*9、第3位*10、第4位*5、第5位*8、第6位*4、第7位*2、第8位*1、第9位*6、第10位*3、第11位*7、第12位*9、第13位*10、第14位*5、第15位*8、第16位*4、第17位*2
-
把这17个乘积相加,然后取模11得余数;
-
余数和校验码对应表:
余数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
校验码 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
计算出来的余数和校验码表对应,如果对应上了,就是正确。如果对应不上,就是错误。
身份证的校验码计算步骤(公式描述版):
实际做一次操作
例子:410928198904015474
8 对应 4 ,正确!
同余理论的验证思想,无处不在
- 计算校验码,各种校验码,书后面的,钱上的,证件上的,身份证...
- 信号丢失
在通信中,信号丢失是很正常的情况。为了防止信号丢失所造成的损失。可以考虑在信号后面加上校验码,这样前面如果丢失一个数字的情况下,还可以通过校验码找回来。如果信号是N位的,而我们在后面加上N-1位,那么就可以有前面丢失了N-1位时还能找回完整的信息。这种方法比单纯的重复发一遍信息要有效得多。
编码是代数中的一个应用分支,是非常有用的。
Reference
https://mp.weixin.qq.com/s/dRlWjcysXM7vsIC2Y4aEUg
标签:10,九数,介绍,校验码,地址码,身份证,原理,同余 From: https://www.cnblogs.com/mysticbinary/p/17833441.html