O Universal Product Code (UPC) é o código utilizado nos códigos de barra e consiste em um vetor (x1, x2, ldots, x12) in(Z / 10 Z)^10 tal que
3 x1+x2+3 x3+x4+3 x5+x6+3 x7+x8+3 x9+x10+3 x11+x12=0 em Z / 10 Z
Mostre que (0,4,6,9,5,6,1,8,2,0,1,5) não é um UPC válido. Supondo que o erro encontra-se no terceiro dígito x3=6, encontre o UPC correto.

Passo 1

O enunciado nos dá um vetor (x1,x2,dots,x12)in(Z/10Z)^12 que é um UPC válido se e somente se
3,x1+x2+3,x3+x4+3,x5+x6+3,x7+x8+3,x9+x10+3,x11+x12 equiv0pmod10
Precisamos mostrar que (0,4,6,9,5,6,1,8,2,0,1,5) falha nessa condição e, supondo que apenas x3 esteja errado, encontrar o valor correto de x3.

Passo 2

Calculamos a soma com pesos do vetor dado:
3cdot0 + 4 + 3cdot6 + 9 + 3cdot5 + 6 + 3cdot1 + 8 + 3cdot2 + 0 + 3cdot1 + 5 =77
Em módulo 10 isso dá
77equiv7pmod10

Passo 3

Como o resultado é 7 e não 0 em Z/10Z, concluímos que o código não é um UPC válido.

Passo 4

Supondo que o erro esteja apenas em x3=6, removemos a contribuição 3cdot6=18 do total de 77, ficando
77-18=59
Queremos então
59 + 3x3 equiv 0 pmod10 Longrightarrow 3x3equiv -59equiv1pmod10
Como gcd(3,10)=1, existe inverso de 3 em Z/10Z e
x3equiv3^-1cdot1equiv7pmod10,
pois 3cdot7=21equiv1pmod10.

Resposta

O UPC correto é (0,4,7,9,5,6,1,8,2,0,1,5).

Exercícios relacionados