首页 > 代码库 > 加权相关-身份证验证码
加权相关-身份证验证码
统计学认为,在统计中计算平均数等指标时,对各个变量值具有权衡轻重作用的数值就称为权数.
还是举个例子吧,求下列数串的平均数
3、4、3、3、3、2、4、4、3、3、
一般求法为(3+4+3+3+3+2+4+4+3+3)/10=3.2
加权求法为(6*3+3*4+2)/10=3.2
其中3出现6次,4出现3次,2出现1次.6、3、1就叫权数。这种方法叫加权法。
一般说的平均数,就是把所有的数加起来,再除以这些数的总个数。表示为:
(p1+p2+p3+.....+pn)/n;
但有的数据记录中有一些相同的数据,在计算的时候,那一个数有几个相同数,就把这个数乘上几,这个几,就叫权,加权,就是乘上几后再加。平均数还是要除以总个数。
还是以上面的各个数为例:
它们每个数都有一些相同数,表示为:k1,k2,k3.......kn;
加权平均的公式是:(k1p1+k2p2+k3p3+......knpn)/(k1+k2+k3+.....kn)
进而扩展:中华人民共和国身份证验证规则
公民身份证号码是特真组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址,八位数字出生日期玛,三位数字顺序码和一位数字校验码。
关于校验码:
(1)十七位数字本体码加权求和公式
S = Ai * Wi, i = 2, ... , 18
Y = mod(S, 11)
i: 表示号码字符从右至左包括校验码字符在内的位置序号
Ai:表示第i位置上的身份证号码字符值
Wi:表示第i位置上的加权因子
i: 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
(2)Y值对应的校验码字符值:
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
试算一个:身份证号是14010519590215222a1
i: 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Ai: 1 4 0 1 0 5 1 9 5 9 0 2 1 5 2 2 2 a1
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
根据公式 S = Ai * Wi=7+36+0+5+0+20+2+9+30+27+0+18+10+25+16+8+4=217
217/11=19+8/11
Y = mod(S, 11)=mod(217,11)=8
所以,检验码为4,该人的身份证号为140105195902152224