如题所述
在香港,每一个居民都会获发一张身份证,证上的号码一共分为 3 个部分:第一个部分是由 1 个或 2 个英文字母所组成,第二部分是 6 个数目字,第三部分有 1 对括号,中间是 1 个数目字或者是英文字母 “A”。例如:“H856249(2)” 就是一个通常见到的身份证号码了。
相信年满 30 岁的居民都会记得,大约在 20 年前,身份证号码原本是没有那个括号部分的,只是某一年,政府更换了一张「电脑化」的身份证之后,才加上这个部分的。记得当年民间就流传了很多传闻,猜测那个括号中的数字,倒底有甚麼意义。(我亦曾经听过一些传说,十分可笑,但现在不一一细表了。)不过,自从有人在一些介绍趣味数学的刊物、网页,又或者是一些电脑杂志、教科书中解释了这个括号中的数字是怎样计算出来之后,这些传闻就渐渐消失了。
原来,这个数字是用以下方法计算出来的:
身份证号码的秘密
首先,我们将身份证号码中第一部分的英文字母,按字母的次序转换成一个数字。例如:“A” 就转成 “1”,“B” 就转成 “2”,其余的如此类推。然后将身份证号码中的每一个数字(包括由字母转换成的数字),由左至右,分别乘以 8、7、6、5、4、3、2 等数值,并将结果加起来。(如果身份证号码有 2 个英文字母,则第一个字母应该乘以 9,其他数字则同上。)
例如:我在上面提过的身份证号码,如果不理括号裏面的数字,应该是 “H856249”。先将 “H” 转换成 8,然后由左至右乘以上述的倍数并求和,得
8 ´ 8 + 8 ´ 7 + 5 ´ 6 + 6 ´ 5 + 2 ´ 4 + 4 ´ 3 + 9 ´ 2 = 218
跟著就按以下的步骤计算出括号中的数字:先将上述的总和除以 11,如果整除,那麼括号内的数字就等於 0;如果有余数,那麼就将 11 减该余数,所得的差就是括号内的数字了。万一那个差等於 10,就将括号内的数字定为 “A”。
例如:在上面的例子中,我们将 218 除以 11,得余数 9,所以括号中的数字就等於 11 - 9 = 2,整个身份证号码就变成 “H856249(2)” 了。
又如果身份证号码是 “H856049”,那麼总和将会是 210,余数是 1,差是 10,所以括号中的数字就应该是 “A” 了。
多此一举?
原来身份证中的括号数字,就是这样计算出来的!不过,大家有没有想过,为甚麼我们要在原有的身份证号码后面,加多 1 个数字呢?将身份证号码裏的数字兜兜转转地计算一番,到底有甚麼意义呢?
我曾经读过一些文章,解释使用括号数字的原因,是为了防止非法入境者伪造身份证!文章作者表示:因为伪造身份证的歹徒并不知道身份证号码的秘密,当警察在街上截查身份证时,可以通过以上的计算,分辨出身份证的真伪!
不消说,相信大家都会觉得以上的解释荒谬之极!第一、既然我可以知道身份证号码的计算方法,伪造身份证的人又怎可能不知?第二、相信大多数人在计算上述身份证号码的总和与及余数时,都会用计算机来辅助计算,我很怀疑在街上巡逻的执法人员,他们是否每一位都有如此强的心算能力,能够即时进行上述的运算?故此,身份证号码中的括号数字是用来仿伪的解释,似乎并不合理。
那麼,这个数字又有甚麼用处呢?
秘密中的秘密
大家知道,不同的人会有一个不同的身份证号码,所以身份证号码是一个用来识别巿民的最简单方法。我们在日常生活之中,有无数的地方,都需要到这个号码。正因为它简单,亦正因为它重要,我们不应该在纪录或抄写的过程之中,将身份证号码搞错,否则可能会带来非常严重的后果。
但在以前,当我们印发身份证的时候,所有号码都是紧贴在一起的,例如:“H856249” 这号码之前的 “H856248” 和之后的 “H856250” 都属於另一个人。万一我们误将 “H856249” 错写为 “H856248”,那麼就会有麻烦了!但是,这只是 1 个数字之差,我们亦不容易察觉到这个错误。
为了解决以上的问题,我们引入了一个括号数字,术语上,我们称它为「核对数位」(check digit)。引入这个核对数位最简单的目的,就是将原本紧逼在一起的号码分开,因为我们只会从 0 至 9 或 A 中选择其中一个数字作为这个核对数位,所以每个身份证号码之间,都会有 11 个数字的「距离」。
第二、由於电脑的发明,当我们将资料输入电脑时,我们同时可以指示电脑检查那身份证的号码是否正确,从而防止输入资料时的人为错误。事实上,检查身份证号码是否正确的方法,比计算核对数位的方法直接得多,方法如下:
首先,我们依旧将身份证号码中第一部分的英文字母转换成数字。然后将身份证号码中的每一个数字(包括核对数位),由左至右,分别乘以每个位的「位值倍数」,即 8、7、6、5、4、3、2 和 1(即将核对数位乘以 1),并将结果加起来,以后称这个值为「核对值」。最后,将这个核对值除以 11。留意核对数位是将 11 减去前面 7 个位乘以其位值倍数之和除以 11 后的余数,故此,连同核对数位计算出来的核对值,必定能够被 11 整除。因此,如果我们发觉核对值不能被 11 整除,那麼输入的身份证号码就一定有错了。(注意:电脑的运算速度非常之高,将身份证号码输入电脑后,一按键,它就可以完成有关的验算,相信连使用电脑的人,亦不会察觉到电脑其实已做了很多次的计算!)
例如:“H856249(2)” 是一个正确的号码,按上述方法计算出的核对值等於
8 ´ 8 + 8 ´ 7 + 5 ´ 6 + 6 ´ 5 + 2 ´ 4 + 4 ´ 3 + 9 ´ 2 + 2 ´ 1 = 220
明显这个数能够被11所整除。假如在输入资料时,将其中 1 个位的数字或字母搞错,例如:变成 “K856249(2)”、“H856049(2)” 或 “H856249(A)”,那麼计算出来的核对值就会分别变成 244、212 和 228。由於这些数值不能被 11 整除,因此我们便知道这些号码有错了。
事实上,如果一个身份证号码的正确核对值为 A,而在输入资料时,(由右边数起的)第 k 个位原本是 a,但现在错入成 b(a ¹ b),那麼该核对值将会变成
A - a ´ k + b ´ k = A + (b - a) ´ k
留意在这裏,除非错误发生在第一个位的英文字母上,否则 (b - a) 的绝对值和k都只会是 1 至 10 之间的数字,不会大於 11,故此 (b - a) ´ k 这个部分,不可能被 11 整除。但因为 A 本身可以被 11 整除,所以整个核对值 A + (b - a) ´ k,便不能被 11 所整除了。由此可以知道输入的资料有错。
当然,应用核对值的方法有一个死穴,就是头一个字母如果错入了一个和原本字母相隔 11 个位的字母,例如:将 “H856249(2)” 错入成 “S856249(2)”(其核对值为 308,可以被 11 整除),那麼电脑亦无法知道到输入的资料有错了。不过,相信发生如此错误的机会极之小,所以这个方法亦相当可靠。
还有,如果输入资料时出现 2 处或以上的错误,例如:将 “H856249(2)” 错入成 “H856049(A)”,我们亦无法将错误检查出来。(当然,如果太容易出现 2 处的输入错误,那麼我认为最佳的解决办法,就是辞退那位输入员,改聘另一位更可靠的人选了!)
另一个秘密
留意在上面的讨论中,那个位值倍数其实没有多大的作用。事实上,如果我们不乘上任何倍数而直接将所有数位加起来,再定出一个核对数位,我们依然可以检查出输入资料时(1 处)的错误。那麼,我们为甚麼需要加入这个位值倍数呢?
原来这亦是用来防止一般人一个容易犯上的错误,这就是误将其中的两个数字的位置对调。例如:将 “H856249(2)” 错误地变成 “H856294(2)”。
我们再假设正确身份证号码的核对值为 A,第 k 位的数字为 a,第 k + n 位的数字为 b(a ¹ b;n ³ 1),如果我们错误地将 a、b 两个数字对调了,那麼该核对值便会变成
A - a ´ k - b ´ (k + n) + a ´ (k + n) + b ´ k = A + (a - b) ´ n
同理,a、b 和 n 都只会是 0 至 9 之间的数字,故此 (a - b) ´ n 这个部分,以至是整个核对值,都不能被 11 所整除,由此可以知道输入的资料有错了。留意如果没有这个位值倍数,我们就无法侦测出这种错误了。
总而言之,身份证号码中的核对数位,是一个简单但非常聪明的设计,它可以让我们很容易地侦测出输入资料时的两种常犯的错误,从而确保资料的可靠性。在整个过程中,亦请大家细心欣赏 11 这个数字的功用。由於 11 是一个质数(而且刚好大於 10),任何两个小於它的数字相乘,都不能被它所整除,所以才能够在上述运算中,找到输入时的错误。如果换了一个合成数,情况就不同了。例如:12,我们知道 4 和 6 都小於 12,但 4 ´ 6 的结果,却能被 12 所整除,因此 12 不可以用来做核对过程中的除数。
最后,个人认为,既然核对数字已经成为身份证号码中一个不可或缺的一部分,故此我们其实亦不必将它特别地指明,以一对括号将它括起来。更何况,将它括起来后,更会引起一些不知情的人胡乱猜测,实在无谓。故此,我提议政府在改发新的身份证明文件的同时,将这一对括号删去。这不是更好的吗?
相信年满 30 岁的居民都会记得,大约在 20 年前,身份证号码原本是没有那个括号部分的,只是某一年,政府更换了一张「电脑化」的身份证之后,才加上这个部分的。记得当年民间就流传了很多传闻,猜测那个括号中的数字,倒底有甚麼意义。(我亦曾经听过一些传说,十分可笑,但现在不一一细表了。)不过,自从有人在一些介绍趣味数学的刊物、网页,又或者是一些电脑杂志、教科书中解释了这个括号中的数字是怎样计算出来之后,这些传闻就渐渐消失了。
原来,这个数字是用以下方法计算出来的:
身份证号码的秘密
首先,我们将身份证号码中第一部分的英文字母,按字母的次序转换成一个数字。例如:“A” 就转成 “1”,“B” 就转成 “2”,其余的如此类推。然后将身份证号码中的每一个数字(包括由字母转换成的数字),由左至右,分别乘以 8、7、6、5、4、3、2 等数值,并将结果加起来。(如果身份证号码有 2 个英文字母,则第一个字母应该乘以 9,其他数字则同上。)
例如:我在上面提过的身份证号码,如果不理括号裏面的数字,应该是 “H856249”。先将 “H” 转换成 8,然后由左至右乘以上述的倍数并求和,得
8 ´ 8 + 8 ´ 7 + 5 ´ 6 + 6 ´ 5 + 2 ´ 4 + 4 ´ 3 + 9 ´ 2 = 218
跟著就按以下的步骤计算出括号中的数字:先将上述的总和除以 11,如果整除,那麼括号内的数字就等於 0;如果有余数,那麼就将 11 减该余数,所得的差就是括号内的数字了。万一那个差等於 10,就将括号内的数字定为 “A”。
例如:在上面的例子中,我们将 218 除以 11,得余数 9,所以括号中的数字就等於 11 - 9 = 2,整个身份证号码就变成 “H856249(2)” 了。
又如果身份证号码是 “H856049”,那麼总和将会是 210,余数是 1,差是 10,所以括号中的数字就应该是 “A” 了。
多此一举?
原来身份证中的括号数字,就是这样计算出来的!不过,大家有没有想过,为甚麼我们要在原有的身份证号码后面,加多 1 个数字呢?将身份证号码裏的数字兜兜转转地计算一番,到底有甚麼意义呢?
我曾经读过一些文章,解释使用括号数字的原因,是为了防止非法入境者伪造身份证!文章作者表示:因为伪造身份证的歹徒并不知道身份证号码的秘密,当警察在街上截查身份证时,可以通过以上的计算,分辨出身份证的真伪!
不消说,相信大家都会觉得以上的解释荒谬之极!第一、既然我可以知道身份证号码的计算方法,伪造身份证的人又怎可能不知?第二、相信大多数人在计算上述身份证号码的总和与及余数时,都会用计算机来辅助计算,我很怀疑在街上巡逻的执法人员,他们是否每一位都有如此强的心算能力,能够即时进行上述的运算?故此,身份证号码中的括号数字是用来仿伪的解释,似乎并不合理。
那麼,这个数字又有甚麼用处呢?
秘密中的秘密
大家知道,不同的人会有一个不同的身份证号码,所以身份证号码是一个用来识别巿民的最简单方法。我们在日常生活之中,有无数的地方,都需要到这个号码。正因为它简单,亦正因为它重要,我们不应该在纪录或抄写的过程之中,将身份证号码搞错,否则可能会带来非常严重的后果。
但在以前,当我们印发身份证的时候,所有号码都是紧贴在一起的,例如:“H856249” 这号码之前的 “H856248” 和之后的 “H856250” 都属於另一个人。万一我们误将 “H856249” 错写为 “H856248”,那麼就会有麻烦了!但是,这只是 1 个数字之差,我们亦不容易察觉到这个错误。
为了解决以上的问题,我们引入了一个括号数字,术语上,我们称它为「核对数位」(check digit)。引入这个核对数位最简单的目的,就是将原本紧逼在一起的号码分开,因为我们只会从 0 至 9 或 A 中选择其中一个数字作为这个核对数位,所以每个身份证号码之间,都会有 11 个数字的「距离」。
第二、由於电脑的发明,当我们将资料输入电脑时,我们同时可以指示电脑检查那身份证的号码是否正确,从而防止输入资料时的人为错误。事实上,检查身份证号码是否正确的方法,比计算核对数位的方法直接得多,方法如下:
首先,我们依旧将身份证号码中第一部分的英文字母转换成数字。然后将身份证号码中的每一个数字(包括核对数位),由左至右,分别乘以每个位的「位值倍数」,即 8、7、6、5、4、3、2 和 1(即将核对数位乘以 1),并将结果加起来,以后称这个值为「核对值」。最后,将这个核对值除以 11。留意核对数位是将 11 减去前面 7 个位乘以其位值倍数之和除以 11 后的余数,故此,连同核对数位计算出来的核对值,必定能够被 11 整除。因此,如果我们发觉核对值不能被 11 整除,那麼输入的身份证号码就一定有错了。(注意:电脑的运算速度非常之高,将身份证号码输入电脑后,一按键,它就可以完成有关的验算,相信连使用电脑的人,亦不会察觉到电脑其实已做了很多次的计算!)
例如:“H856249(2)” 是一个正确的号码,按上述方法计算出的核对值等於
8 ´ 8 + 8 ´ 7 + 5 ´ 6 + 6 ´ 5 + 2 ´ 4 + 4 ´ 3 + 9 ´ 2 + 2 ´ 1 = 220
明显这个数能够被11所整除。假如在输入资料时,将其中 1 个位的数字或字母搞错,例如:变成 “K856249(2)”、“H856049(2)” 或 “H856249(A)”,那麼计算出来的核对值就会分别变成 244、212 和 228。由於这些数值不能被 11 整除,因此我们便知道这些号码有错了。
事实上,如果一个身份证号码的正确核对值为 A,而在输入资料时,(由右边数起的)第 k 个位原本是 a,但现在错入成 b(a ¹ b),那麼该核对值将会变成
A - a ´ k + b ´ k = A + (b - a) ´ k
留意在这裏,除非错误发生在第一个位的英文字母上,否则 (b - a) 的绝对值和k都只会是 1 至 10 之间的数字,不会大於 11,故此 (b - a) ´ k 这个部分,不可能被 11 整除。但因为 A 本身可以被 11 整除,所以整个核对值 A + (b - a) ´ k,便不能被 11 所整除了。由此可以知道输入的资料有错。
当然,应用核对值的方法有一个死穴,就是头一个字母如果错入了一个和原本字母相隔 11 个位的字母,例如:将 “H856249(2)” 错入成 “S856249(2)”(其核对值为 308,可以被 11 整除),那麼电脑亦无法知道到输入的资料有错了。不过,相信发生如此错误的机会极之小,所以这个方法亦相当可靠。
还有,如果输入资料时出现 2 处或以上的错误,例如:将 “H856249(2)” 错入成 “H856049(A)”,我们亦无法将错误检查出来。(当然,如果太容易出现 2 处的输入错误,那麼我认为最佳的解决办法,就是辞退那位输入员,改聘另一位更可靠的人选了!)
另一个秘密
留意在上面的讨论中,那个位值倍数其实没有多大的作用。事实上,如果我们不乘上任何倍数而直接将所有数位加起来,再定出一个核对数位,我们依然可以检查出输入资料时(1 处)的错误。那麼,我们为甚麼需要加入这个位值倍数呢?
原来这亦是用来防止一般人一个容易犯上的错误,这就是误将其中的两个数字的位置对调。例如:将 “H856249(2)” 错误地变成 “H856294(2)”。
我们再假设正确身份证号码的核对值为 A,第 k 位的数字为 a,第 k + n 位的数字为 b(a ¹ b;n ³ 1),如果我们错误地将 a、b 两个数字对调了,那麼该核对值便会变成
A - a ´ k - b ´ (k + n) + a ´ (k + n) + b ´ k = A + (a - b) ´ n
同理,a、b 和 n 都只会是 0 至 9 之间的数字,故此 (a - b) ´ n 这个部分,以至是整个核对值,都不能被 11 所整除,由此可以知道输入的资料有错了。留意如果没有这个位值倍数,我们就无法侦测出这种错误了。
总而言之,身份证号码中的核对数位,是一个简单但非常聪明的设计,它可以让我们很容易地侦测出输入资料时的两种常犯的错误,从而确保资料的可靠性。在整个过程中,亦请大家细心欣赏 11 这个数字的功用。由於 11 是一个质数(而且刚好大於 10),任何两个小於它的数字相乘,都不能被它所整除,所以才能够在上述运算中,找到输入时的错误。如果换了一个合成数,情况就不同了。例如:12,我们知道 4 和 6 都小於 12,但 4 ´ 6 的结果,却能被 12 所整除,因此 12 不可以用来做核对过程中的除数。
最后,个人认为,既然核对数字已经成为身份证号码中一个不可或缺的一部分,故此我们其实亦不必将它特别地指明,以一对括号将它括起来。更何况,将它括起来后,更会引起一些不知情的人胡乱猜测,实在无谓。故此,我提议政府在改发新的身份证明文件的同时,将这一对括号删去。这不是更好的吗?
参考资料:身份證號碼:秘密中的秘密
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-03-31
身份证上符号的意思
在香港身份证上,出生日期项目之下,会印有一串符号及英文字母及数字(例如***AZ),很多人均不知道这些代码的意思,甚至有所误解。其确实代表的意思如下:
第一及第二代电脑身份证
符号 注解
*** 持证人年龄为18岁或以上及有资格申领香港特别行政区回港证
* 持证人年龄为11岁至17岁及有资格申领香港特别行政区回港证
A 持证人拥有香港居留权
B 持证人所报的出生日期或地点或性别自首次登记后,曾作出更改
C 持证人登记领证时在香港的居留受到入境事务处处长的限制
F 持证人的性别是女性
H1 身份证发出的办事处代号
L 持证人曾遗失身份证,L1表示遗失一次,L2表示遗失二次,如此类推
M 持证人的性别是男性
N 持证人所报的姓名自首次登记以后,曾作出更改
O 持证人报称在香港、澳门及内地以外其他地区或国家出生
K2 身份证发出的办事处代号
R 持证人拥有香港入境权
S1 身份证发出的办事处代号
U 持证人登记领证时在香港的居留不受入境事务处处长的限制
W 持证人报称在澳门地区出生
X 持证人报称在内地出生
Y 持证人所报的出生日期已由入境事务处与其出生证明书或护照核对
Z 持证人报称在香港出生
智能身份证
符号 注解
*** 持证人年龄为18岁或以上及有资格申领香港特别行政区回港证
* 持证人年龄为11岁至17岁及有资格申领香港特别行政区回港证
A 持证人拥有香港居留权
C 持证人登记领证时在香港的居留受到入境事务处处长的限制
L 持证人曾遗失身份证,L1表示遗失一次,L2表示遗失二次,如此类推
N 持证人所报的姓名自首次登记以后,曾作出更改
O 持证人报称在香港、澳门及内地以外其他地区或国家出生
R 持证人拥有香港入境权
U 持证人登记领证时在香港的居留不受入境事务处处长的限制
W 持证人报称在澳门地区出生
X 持证人报称在内地出生
Z 持证人报称在香港出生
每张香港身份证均印有一个身份证号码,身份证号码由1或2个英文字母,6个数字及1个括号数字组成。括号内的数字是查核用数码,是为方便电脑处理资料及检查号码输入的正确性而设。
身份证号码用途十分多,亦是重要的个人资料,受到个人资料隐私专员行使第香港法例第486章《个人资料(隐私)条例》所赋予的权力所发出的《身份证号码及其他身份代号实务守则》所保护。
在香港身份证上,出生日期项目之下,会印有一串符号及英文字母及数字(例如***AZ),很多人均不知道这些代码的意思,甚至有所误解。其确实代表的意思如下:
第一及第二代电脑身份证
符号 注解
*** 持证人年龄为18岁或以上及有资格申领香港特别行政区回港证
* 持证人年龄为11岁至17岁及有资格申领香港特别行政区回港证
A 持证人拥有香港居留权
B 持证人所报的出生日期或地点或性别自首次登记后,曾作出更改
C 持证人登记领证时在香港的居留受到入境事务处处长的限制
F 持证人的性别是女性
H1 身份证发出的办事处代号
L 持证人曾遗失身份证,L1表示遗失一次,L2表示遗失二次,如此类推
M 持证人的性别是男性
N 持证人所报的姓名自首次登记以后,曾作出更改
O 持证人报称在香港、澳门及内地以外其他地区或国家出生
K2 身份证发出的办事处代号
R 持证人拥有香港入境权
S1 身份证发出的办事处代号
U 持证人登记领证时在香港的居留不受入境事务处处长的限制
W 持证人报称在澳门地区出生
X 持证人报称在内地出生
Y 持证人所报的出生日期已由入境事务处与其出生证明书或护照核对
Z 持证人报称在香港出生
智能身份证
符号 注解
*** 持证人年龄为18岁或以上及有资格申领香港特别行政区回港证
* 持证人年龄为11岁至17岁及有资格申领香港特别行政区回港证
A 持证人拥有香港居留权
C 持证人登记领证时在香港的居留受到入境事务处处长的限制
L 持证人曾遗失身份证,L1表示遗失一次,L2表示遗失二次,如此类推
N 持证人所报的姓名自首次登记以后,曾作出更改
O 持证人报称在香港、澳门及内地以外其他地区或国家出生
R 持证人拥有香港入境权
U 持证人登记领证时在香港的居留不受入境事务处处长的限制
W 持证人报称在澳门地区出生
X 持证人报称在内地出生
Z 持证人报称在香港出生
每张香港身份证均印有一个身份证号码,身份证号码由1或2个英文字母,6个数字及1个括号数字组成。括号内的数字是查核用数码,是为方便电脑处理资料及检查号码输入的正确性而设。
身份证号码用途十分多,亦是重要的个人资料,受到个人资料隐私专员行使第香港法例第486章《个人资料(隐私)条例》所赋予的权力所发出的《身份证号码及其他身份代号实务守则》所保护。
第2个回答 2009-03-31
英文字母(老年人通常是A或者B,成年人多数是之后的英文字母,如D, E之类;现在的青少年[20岁左右]多数是Z, 现在小孩多数Y,内地移民不久的多是V)