Question 1174086
One reason to have <em>different</em> weights on adjacent digits is to put some numerical distance between them.  What I mean by 'distance' is that this different weighting causes the contribution of a digit (toward the check digit computation) to be different depending on whether it is in an even or odd position.  <br>

If the exact same weight were used on all digits, then the error of transposing two digits would have no effect on the check digit calculation and that error mode would escape detection. <br>


Source, and for more info:  https://en.wikipedia.org/wiki/International_Article_Number#Manufacturer_code

In particular, you may find this paragraph of interest:
"Check digit
The check digit is an additional digit, used to verify that a barcode has been scanned correctly. It is computed modulo 10, where the weights in the checksum calculation alternate 3 and 1. In particular, since the weights are relatively prime to 10, the EAN-13 system will detect all single digit errors. It also recognizes 90% of transposition errors (all cases, where the difference between adjacent digits is not 5). "