Also: note the section in the Wikipedia page on the Adler checksum, which was an attempt to improve Fletcher's checksum by substituting a prime modulus. This stands to reason as a prime modulus is usually important in codes. This change was probably not backed up by analysis and through direct simulation has shown to actually weaken the checksum.
Just pointing this out as an example of what I have observed personally: people tinkering with codes (nothing wrong with that) to improve them, without bothering to understand the analysis they would have to do to prove that they hadn't made things actually worse.
[yet another edit:] If you find error-detecting and -correcting codes interesting or mysterious, read the original papers! So many fun and interesting things to see there, and it is a chance to motivate a look into areas of math you might be unfamiliar with. 'Nuff said.
Modulus without Division, a tutorial
For some reason, I find it fascinating to read about such a fundamental limitation. But I understand it doesn't apply much in the real world.
As the article says, Adler-32 is a specialization of Fletcher-32 that specifies a modulus of 65521 - that would seem to avoid this limitation.
- wireless network packet checksum
- filesystem checksum
good thing is that comes in variations, 16, 32 and 64 bits wide