Skip to main content
Logo image

Exercises 3.6 Additional Exercises: Detecting Errors

1. UPC Symbols.

Universal Product Code (UPC) symbols are found on most products in grocery and retail stores. The UPC symbol is a 12-digit code identifying the manufacturer of a product and the product itself (Figure 3.32). The first 11 digits contain information about the product; the twelfth digit is used for error detection. If d1d2⋯d12 is a valid UPC number, then
3⋅d1+1⋅d2+3⋅d3+⋯+3⋅d11+1⋅d12≡0(mod10).
  1. Show that the UPC number 0-50000-30042-6, which appears in Figure 3.32, is a valid UPC number.
  2. Show that the number 0-50000-30043-6 is not a valid UPC number.
  3. Write a formula to calculate the check digit, d12, in the UPC number.
  4. The UPC error detection scheme can detect most transposition errors; that is, it can determine if two digits have been interchanged. Show that the transposition error 0-05000-30042-6 is not detected. Find a transposition error that is detected. Can you find a general rule for the types of transposition errors that can be detected?
  5. Write a program that will determine whether or not a UPC number is valid.
The vertical lines of a UPC bar scan code for 0-05000-30042-6
Figure 3.32. A UPC code

2.

It is often useful to use an inner product notation for this type of error detection scheme; hence, we will use the notion
(d1,d2,…,dk)⋅(w1,w2,…,wk)≡0(modn)
to mean
d1w1+d2w2+⋯+dkwk≡0(modn).
Suppose that (d1,d2,…,dk)⋅(w1,w2,…,wk)≡0(modn) is an error detection scheme for the k-digit identification number d1d2⋯dk, where 0≤di<n. Prove that all single-digit errors are detected if and only if gcd(wi,n)=1 for 1≤i≤k.

3.

Let (d1,d2,…,dk)⋅(w1,w2,…,wk)≡0(modn) be an error detection scheme for the k-digit identification number d1d2⋯dk, where 0≤di<n. Prove that all transposition errors of two digits di and dj are detected if and only if gcd(wi−wj,n)=1 for i and j between 1 and k.

4. ISBN Codes.

Every book has an International Standard Book Number (ISBN) code. This is a 10-digit code indicating the book’s publisher and title. The tenth digit is a check digit satisfying
(d1,d2,…,d10)⋅(10,9,…,1)≡0(mod11).
One problem is that d10 might have to be a 10 to make the inner product zero; in this case, 11 digits would be needed to make this scheme work. Therefore, the character X is used for the eleventh digit. So ISBN 3-540-96035-X is a valid ISBN code.
  1. Is ISBN 0-534-91500-0 a valid ISBN code? What about ISBN 0-534-91700-0 and ISBN 0-534-19500-0?
  2. Does this method detect all single-digit errors? What about all transposition errors?
  3. How many different ISBN codes are there?
  4. Write a computer program that will calculate the check digit for the first nine digits of an ISBN code.
  5. A publisher has houses in Germany and the United States. Its German prefix is 3-540. If its United States prefix will be 0-abc, find abc such that the rest of the ISBN code will be the same for a book printed in Germany and in the United States. Under the ISBN coding method the first digit identifies the language; German is 3 and English is 0. The next group of numbers identifies the publisher, and the last group identifies the specific book.