有学数学或者研究算法的么?帮我解决一个CRC32的问题吧。

来源:百度知道 编辑:UC知道 时间:2024/06/10 00:52:24
18身份证号码中,最后一位为校验位,他的生成有一个固定的算法,如下:

十七位数字本体码加权求和公式
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
校验码字符值的计算
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2

这实际上使用了奇偶校验的方法中的查表法进行的,而Wi的求得是经过多方认证的,我相信学数学的人应该能够推算出来。

我有一个需求,就是有一个固定长度为11个数字的串,也需要产生一位校验码。

哪位高手能帮我一下呢?
非常感谢 剑龙在野 ,我的需求如下:

就是有一个固定长度为11个数字的串,也需要产生一位校验码。
需要帮我求出Wi.
Y为0-9,
校验码与Y的关系为对应关系,也为0-9.
你的理解基本正确,谢谢了

你没说明你的需求,你希望有人帮你求出Wi,再求出Y对应的校验码?

但是你只是说了18位身份证的,没说你自己的具体要求啊,比如说,
还是Y = mod(S, 11)?

另外,你也没说明Y与校验码的关系啊

说的稍微详细些吧

不知道诶