赞
踩
Clear["Global`*"]
prst0[n_, d_] := 1 - d!/(d^n (d - n)!); (*取值空间为d,取值范围为n*)
prst1[n_, d_] := 1 - E^(-((n (n - 1))/(2 d)));
prst0[2, 255] // N (*8 bit*)
prst0[8, 8*32] // N
prst0[8, 8*8192] // N
Plot[prst1[x, 8*32], {x, 1, 50}] (*16 bit*)
Plot[prst1[x, 8*8192], {x, 1, 800}] (*16 bit*)
Plot[prst1[128, 8*y], {y, 1000, 8192}] (*16 bit*)
看上面这二张图,
1.就是8BIT CRC8 同时错10个BIT 碰撞的概率是20% ,同时错50个BIT 碰撞的概率约是99%
2.就是16BIT CRC16 同时错200个BIT 碰撞的概率是20% ,同时错800个BIT 碰撞的概率约是99%
而不管校验的长度是多少字节,只要同时错这么多个位。不管你校验多长的字节数,CRC8的计算结果都是256BIT CRC16 是65536BIT
CRC32也同理可得:
如图所示
欢迎批评指正,我是这样理解的。
参考
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。