b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

校验原理和PHP实现

电脑杂谈  发布时间:2019-09-16 20:03:21  来源:网络整理

php 检查号码_php正则验证号_知道号码知道姓名查到号

1、将上面的号码17位数分别除以不同的常数。第i位对应的数为[2^(18-i)]mod11。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;

2、将这17位数字和系数相乘的结果相加;

php 检查号码_php正则验证号_知道号码知道姓名查到号

3、用加起来和减去11php 检查号码,看余数是多少?;

4、余数只或许有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最终一位的号码为1 0 X 9 8 7 6 5 4 3 2;

知道号码知道姓名查到号_php正则验证号_php 检查号码

5、通过下面得知除非余数是2,就会在的第18位数字上出现罗马数字的Ⅹ。如果余数是10,的最终一位号码就是2;

下面是我自己写的一个简单的PHP实现的过程:

php 检查号码_php正则验证号_知道号码知道姓名查到号

    <?php
    /**
    * 输入 id 号码 然后检验是否合适
    **/
    function checkId($id) {
        $len = strlen($id);
        if($len != 18) {
            return 0;
        }
        $a=str_split($id,1);
        $w=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
        $c=array(1,0,'X',9,8,7,6,5,4,3,2);
        $sum = 0;
        for($i=0;$i<17;$i++){
                $sum= $sum + $a[$i]*$w[$i];
        }
        $r=$sum;
        $res=$c[$r];
        //echo "校验位是: ".$res;
        if ($res == $a[17]) {
            return 1;
        } else {
            return 0;
        }
    }

使用Excel进行校准计算的建模php 检查号码,假设号码在A1单元格的外部,则在计算栏上面输入如下的公式就能计算:

=LOOKUP(MOD(MID($A$1,1,1)*MOD(2^17,11)+MID($A$1,2,1)*MOD(2^16,11)+MID($A$1,3,1)*MOD(2^15,11)+MID($A$1,4,1)*MOD(2^14,11)+MID($A$1,5,1)*MOD(2^13,11)+MID($A$1,6,1)*MOD(2^12,11)+MID($A$1,7,1)*MOD(2^11,11)+MID($A$1,8,1)*MOD(2^10,11)+MID($A$1,9,1)*MOD(2^9,11)+MID($A$1,10,1)*MOD(2^8,11)+MID($A$1,11,1)*MOD(2^7,11)+MID($A$1,12,1)*MOD(2^6,11)+MID($A$1,13,1)*MOD(2^5,11)+MID($A$1,14,1)*MOD(2^4,11)+MID($A$1,15,1)*MOD(2^3,11)+MID($A$1,16,1)*MOD(2^2,11)+MID($A$1,17,1)*MOD(2^1,11),11),{0;1;2;3;4;5;6;7;8;9;10},{1;0;"X";9;8;7;6;5;4;3;2})

下面这个图则是对进行校验计算的建模:

下面是国家公布的GB文档

GB11643-1999 国家标准公民身份号码.pdf


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-123086-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...