首页 > 代码库 > 加权相关-身份证验证码

加权相关-身份证验证码

统计学认为,在统计中计算平均数等指标时,对各个变量值具有权衡轻重作用的数值就称为权数.

    还是举个例子吧,求下列数串的平均数

    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