• Nenhum resultado encontrado

"Sistemas de verificação de dígitos" em "Treze Viagens pelo Mundo da Matemática", C.Sá e J.Rocha (eds.), UP

N/A
N/A
Protected

Academic year: 2021

Share ""Sistemas de verificação de dígitos" em "Treze Viagens pelo Mundo da Matemática", C.Sá e J.Rocha (eds.), UP"

Copied!
26
0
0

Texto

(1)

Cap´ıtulo 12

Sistemas de verifica¸

ao de d´ıgitos

por Christian Lomp e Sandra M´onica Costa Pires

12.1

Introdu¸

ao

Sempre que se transmite ou se recebe uma mensagem, existe a possibilidade de ocorrerem erros. Por este motivo pretende-se que os sistemas de comunica¸c˜ao sejam o mais fi´aveis poss´ıvel. No dia-a-dia, e nas mais variadas situa¸c˜oes, s˜ao transmitidas diferentes men-sagens, que podem ser m´usicas, imagens ou textos digitalizados. Existe uma necessidade permanente de desenvolver processos que permitam codificar e que permitam detectar, ou mesmo corrigir, eventuais erros ocorridos durante a transmiss˜ao. Nesse sentido, muitas vezes introduzimos d´ıgitos de controlo. Ou seja, introduzem-se s´ımbolos redundantes que s˜ao de grande importˆancia no controlo e na correc¸c˜ao de erros. Assim surgem os sistemas de verifica¸c˜ao de d´ıgitos, ou check digit systems, que se encontram hoje em diversas situa¸c˜oes do nosso dia-a-dia.

Estudamos agora, alguns exemplos de c´odigos e a forma com que detectam e/ou cor-rigem eventuais erros de transmiss˜ao. O exemplo mais b´asico de um c´odigo ´e o c´odigo de verifica¸c˜ao de paridade: um byte ´e uma sequˆencia de oito d´ıgitos (bits), tal que cada bit tem o valor 0 ou 1. Para verificar a transmiss˜ao correcta de bytes por um canal (um fio de telefone, por exemplo) utiliza-se o ´ultimo bit. Se a0, a1, . . . , a6 s˜ao os primeiros sete bits

calcula-se:

a7 ≡ a0+ a1+ · · · + a6 (mod 2), (12.1)

onde a ≡ b (mod n) significa que n ´e divisor de b − a. O receptor do byte a0a1. . . a7

pode verificar se o d´ıgito de verifica¸c˜ao a7 satisfaz a equa¸c˜ao (12.1). Se o byte recebido

n˜ao satisfizer esta equa¸c˜ao, o receptor detectou o erro na transmiss˜ao e pode pedir uma retransmiss˜ao. O c´odigo ASCII, American Standard Code for Information Interchange, que associa n´umeros entre 0 e 127 `as letras do alfabeto, algarismos e sinais de pontua¸c˜ao, utiliza esta ideia. Cada n´umero ´e representado por sete bits, a0a1. . . a6, aos quais ´e

acres-centado um bit, a7, definido por (12.1). Um sistema semelhante ´e utilizado nos circuitos

(2)

Um outro c´odigo detector de erros ´e o ISBN, International Standard Book Number. Todos os livros publicados no mundo ocidental recebem um n´umero ISBN. Um n´umero (ou uma palavra) a1a2a3. . . a10, com 0 ≤ ai ≤ 10, ´e um n´umero de ISBN v´alido se:

1a1+ 2a2 + 3a3+ . . . 9a9+ 10a10= 10

X

i=1

iai ≡ 0 (mod 11) (12.2)

Assim sendo, o algarismo a10 ´e determinado atrav´es dos d´ıgitos a1, . . . , a9:

a10 ≡ 9

X

i=1

iai (mod 11) (12.3)

Se ocorrer que o d´ıgito de verifica¸c˜ao seja 10, neste caso, por conven¸c˜ao a letra1ser´a X, pois n˜ao podemos esquecer que se pretende que os n´umeros ISBN sejam formados por apenas 10 s´ımbolos. Na pr´atica s´o se utiliza n´umeros de ISBN com a1, · · · , a9 ∈ {0, . . . , 9}.

Por exemplo, o livro “The theory of groups and quantum mechanics” escrito por Her-man Weyl, na edi¸c˜ao de Dover, tem o n´umero ISBN 0-48-660269-9. O ´ultimo d´ıgito (ou letra) ´e um d´ıgito que ir´a verificar a validade do n´umero. Verifique-se:

1×0+2×4+3×8+4×6+5×6+6×0+7×2+8×6+9×9 = 229 ≡ 9 (mod 11) (12.4) Desde a implementa¸c˜ao dos n´umeros ISBN, em 1969, at´e 1 de Janeiro de 2007, estes n´umeros mantiveram a forma acima. A partir de 2007, o n´umero ISBN passou a ser formado por 13 d´ıgitos, divididos em cinco blocos, separados por h´ıfens ou espa¸cos, sendo o primeiro e o ´ultimo de comprimento fixo.

Figura 12.1: C´odigo EAN-13

Neste novo ISBN, o ´ultimo d´ıgito ´e o d´ıgito de verifica¸c˜ao. Cada um dos primeiros doze d´ıgitos do n´umero ISBN, ´e agora multiplicado alternadamente por 1 e por 3. Este n´umero ´

e na verdade idˆentico ao c´odigo de barras EAN-13 (European Article Numbers) e tem a forma a1a2. . . a13 com ai ∈ {0, . . . , 9}, com:

a1+ 3a2+ a3+ 3a4+ a5+ 3a6+ a7+ 3a8+ a9+ 3a10+ a11+ 3a12+ a13≡ 0 (mod 10). (12.5)

Repare-se que o EAN-13 ´e calculado atrav´es de congruˆencias m´odulo 10. O livro “Intro-duction to Coding Theory” de Ron M. Roth, da Cambridge University Press, de 2006, possui o n´umero EAN-13 seguinte: 9780521845045. Verifique-se:

9+3×7+8+3×0+5+3×2+1+3×8+4+3×5+0+3×4+5 = 110 ≡ 0 (mod 10). (12.6)

(3)

Um outro exemplo de um sistema de verifica¸c˜ao de d´ıgitos encontra-se no Bilhete de Identidade (BI) Portuguˆes (ver tamb´em o artigo de Jorge Picado (Picado, 2001)). Quem ´

e que nunca pensou qual seria o significado do algarismo suplementar que ´e justaposto ao n´umero do BI? De certo, todos n´os j´a ouvimos a justifica¸c˜ao de que este n´umero indicaria o n´umero de pessoas que, em Portugal, tˆem o mesmo nome que o portador do BI. Mas, se assim fosse, pod´ıamos colocar a seguinte quest˜ao: N˜ao poder˜ao existir mais de nove pessoas com o mesmo nome? De facto, facilmente constatamos que este n˜ao ´e o argumento correcto. Na verdade, o algarismo suplementar do BI ´e determinado da mesma forma que no c´odigo ISBN, com uma ´unica diferen¸ca: todos os d´ıgitos permitidos pertencem ao conjunto {0, 1, . . . , 9}.

Considere-se a1a2. . . a8 o n´umero de identifica¸c˜ao seguido do d´ıgito de verifica¸c˜ao a9.

O n´umero de verifica¸c˜ao do BI ´e calculado a partir do n´umero de identifica¸c˜ao, da seguinte forma:

9a1+ 8a2+ 7a3+ . . . + 2a8+ a9 ≡ 0 (mod 11). (12.7)

Quando um n´umero de identifica¸c˜ao tiver menos de oito d´ıgitos, devem ser acrescentados `

a esquerda do n´umero os zeros necess´ario at´e completar os oito algarismos. Ent˜ao, a9 ser´a

o n´umero que somado a n = 9a1+ 8a2+ 7a3 + . . . + 2a8 d´a origem a um m´ultiplo de 11.

Assim sendo, se n ≡ x (mod 11), ent˜ao a9 = 0 se x = 0 ou a9 = 11 − x se x 6= 0. Ora,

se x = 1 o d´ıgito de verifica¸c˜ao seria 10, mas uma vez que se pretende que o n´umero de verifica¸c˜ao possua apenas um d´ıgito o sistema em vez de 10 utiliza o d´ıgito 0. Desta forma, ´

e imposs´ıvel saber, apenas por observa¸c˜ao directa, quais os n´umeros de BI em que o d´ıgito de verifica¸c˜ao deveria ser 0 ou 10. No N´umero de Identifica¸c˜ao Fiscal (NIF) o d´ıgito de verifica¸c˜ao, que neste caso ´e o ´ultimo d´ıgito, ´e determinado exactamente da mesma forma que no BI, o que faz com que existe uma limita¸c˜ao idˆentica.

No cart˜ao de cr´edito existe igualmente um processo de verifica¸c˜ao de d´ıgitos2. O n´umero de cada cart˜ao de cr´edito possui 16 algarismos sendo o ´ultimo o d´ıgito de ve-rifica¸c˜ao. O c´alculo deste d´ıgito de verifica¸c˜ao segue um algoritmo um pouco diferente dos descritos anteriormente. Considere-se a1a2. . . a16 com ai ∈ {0, . . . , 9}. Neste caso,

cada um dos primeiros quinze d´ıgitos do n´umero do cart˜ao de cr´edito ´e agora multiplicado alternadamente por 2 e por 1, obtendo-se assim a sequˆencia 2a1, a2, 2a3, a4, . . . 2a15.

Note-se que, cada elemento desta Note-sequˆencia possuir´a um ou dois algarismos. Posteriormente, determina-se x de modo a que seja congruente m´odulo 10 com a soma dos d´ıgitos individuais dos n´umeros da sequˆencia anterior. O d´ıgito de verifica¸c˜ao, a16, ser´a determinado fazendo,

a16 = 10 − x. Considere-se por exemplo o n´umero de cart˜ao de cr´edito 5233220040093298.

De acordo, com a descri¸c˜ao anterior, obt´em-se a seguinte sequˆencia:

10, 2, 6, 3, 4, 2, 0, 0, 8, 0, 0, 9, 6, 2, 18. (12.8) Desta forma,

x = 1 + 0 + 2 + 6 + 3 + 4 + 2 + 0 + 0 + 8 + 0 + 0 + 9 + 6 + 2 + 1 + 8 = 52. (12.9)

(4)

Uma vez que 52 ≡ 2 (mod 10), neste caso o d´ıgito de verifica¸c˜ao ´e 10 − 2 = 8, correspon-dente ao d´ecimo sexto d´ıgito do n´umero do cart˜ao de cr´edito apresentado.

Neste artigo discutimos as propriedades b´asicas dos sistemas de verifica¸c˜ao de d´ıgitos em termos da capacidade de “detectar” erros que podem ocorrer durante uma transmiss˜ao. Exemplos de alguns tipos de erros s˜ao, os erros singulares (na transmiss˜ao s´o um d´ıgito foi alterado), as transposi¸c˜oes adjacentes (dois d´ıgitos adjacentes trocaram de posi¸c˜ao aiai+1 → ai+1ai) e as transposi¸c˜oes intercaladas (ocorre a troca entre dois algarismos

que tˆem apenas um algarismo a intercal´a-los ai−1aiai+1 → ai+1aiai−1). A ´unica

possibil-idade de efectuarmos um estudo sobre estes erros, ser´a de forma emp´ırica. Na sua tese “Error detecting decimal codes”, J. Verhoeff (Verhoeff, 1969) identificou um conjunto de tipos de erros e as suas frequˆencias relativas que ´e apresentado na tabela 12.2.

Tipo de erro Frequˆencia relativa Erros singulares · · · a · · · → · · · b · · · 79.0% Transposi¸c˜ao adjacente · · · ab · · · → · · · ba · · · 10.2% Transposi¸c˜ao intercaladas · · · abc · · · → · · · cba · · · 0.8% Erros g´emeos · · · aa · · · → · · · bb · · · 0.6% Erros g´emeos intercalados · · · aca · · · → · · · bcb · · · 0.3%

outros erros 9.1%

Figura 12.2: Tipos de erros e as suas frequˆencias relativas.

A tabela mostra que os erros mais comuns s˜ao os erros singulares e os erros de trans-posi¸c˜ao adjacentes. Trataremos estes tipos de erros ao longo deste artigo.

12.2

Sistemas de verifica¸

ao de d´ıgitos

At´e aqui vimos exemplos de v´arios c´odigos. ´E, ent˜ao, natural que surjam algumas d´uvidas: Em que consiste um c´odigo? Como pode ser criado um c´odigo? Torna-se assim evidente a necessidade de formalizar este conceito.

Uma mensagem ´e composta por s´ımbolos de um conjunto finito fixo, o qual ´e denom-inado por alfabeto. Considere-se ent˜ao A um alfabeto3. Os elementos de um produto cartesiano, An (n ≥ 1), s˜ao chamados palavras de comprimento n sobre A e s˜ao

represen-tadas por a1. . . an ou (a1, . . . , an). Um c´odigo de bloco definido num alfabeto A ´e um

subconjunto n˜ao vazio de An, isto ´e, ´e um conjunto de palavras.

Relativamente aos sistemas de verifica¸c˜ao de d´ıgitos, as palavras de um c´odigo represen-tam as palavras v´alidas. Como o nosso objectivo ´e definir e estudar sistemas de verifica¸c˜ao de d´ıgitos cujas palavras v´alidas s˜ao exactamente as solu¸c˜oes de uma equa¸c˜ao, ´e ´util ter um alfabeto que possua uma estrutura alg´ebrica. Uma possibilidade ´e utilizar a teoria de grupos. Come¸camos por relembrar alguns conceitos desta teoria. Uma permuta¸c˜ao de um conjunto n˜ao vazio A ´e uma fun¸c˜ao α : A → A que tem uma fun¸c˜ao inversa ou

(5)

seja existe uma fun¸c˜ao β : A → A tal que as composi¸c˜oes de α e β s˜ao iguais `a fun¸c˜ao identidade: α ◦ β = idA = β ◦ α. A inversa de uma fun¸c˜ao α denota-se por α−1. Se A ´e um

conjunto finito, ent˜ao uma fun¸c˜ao α : A → A ´e uma permuta¸c˜ao se e s´o se α ´e injectiva. O conjunto das permuta¸c˜oes de A ´e denotado SA e denominado grupo das permuta¸c˜oes

de A e tem as seguintes propriedades:

(i) a composi¸c˜ao α ◦ β de permuta¸c˜oes α, β ´e uma permuta¸c˜ao, (ii) a identidade idA pertence ao conjunto SA e

(iii) a inversa de qualquer permuta¸c˜ao ´e novamente uma permuta¸c˜ao. Denote-se por Sn o grupo das permuta¸c˜oes do conjunto {1, . . . , n}.

Generalizando o conceito de grupo das permuta¸c˜oes chegamos `a defini¸c˜ao de um grupo: Um grupo ´e um triplo (A, ·, e) em que A ´e um conjunto, · : A × A → A ´e uma opera¸c˜ao bin´aria e e ´e um elemento de A tal que s˜ao satisfeitas as seguintes propriedades:

(i) a opera¸c˜ao · ´e associativa, i.e. a · (b · c) = (a · b) · c, (ii) para cada elemento a ∈ A tem-se a · e = a = e · a, e

(iii) para cada elemento a ∈ A existe um elemento inverso a−1, isto ´e, a · a−1 = e = a−1· a. Obviamente (SA, ◦, id) ´e um grupo4 para qualquer conjunto n˜ao vazio A. Para cada

n > 0 o conjunto Zn = {0, 1, . . . , n − 1}, forma um grupo com a opera¸c˜ao a · b := a + b

(mod n) para a, b ∈ Zn.

Um grupo (A, ·, e) ser´a designado Abeliano se o produto for comutativo, isto ´e, a · b = b · a para todo a, b ∈ A. Os grupos (Zn, +, 0) s˜ao Abelianos, para todo n, e os grupos

(SA, ◦, id) n˜ao s˜ao Abelianos para conjuntos A que tenham mais de dois elementos.

Um grupo (A, ·, e) diz-se finito se A for um conjunto finito. Por sua vez, a ordem de um grupo, ´e o n´umero de elementos que o formam e denota-se usualmente por |A|. Outra no¸c˜ao que ser´a igualmente necess´ario ter presente ´e a no¸c˜ao de ordem de um elemento a de um grupo (A, ·, e). A ordem de um elemento a ´e o menor inteiro positivo n, tal que an = e, e denota-se por ord(a), com a conven¸c˜ao a0 = e e ak = a · ak−1. A ordem do

elemento a diz-se infinita se tal n n˜ao existe. Note-se que o ´unico elemento de ordem 1 ´e o elemento neutro e. Uma vez que num grupo finito nem todas as potˆencias an, n ∈ N, de

um elemento a podem ser diferentes, qualquer elemento tem ordem finita.

Por analogia aos exemplos anteriores de verifica¸c˜ao de d´ıgitos, considere-se um elemento c ∈ A qualquer de um grupo A e n permuta¸c˜oes σ1, . . . , σn de A. O c´odigo de verifica¸c˜ao

de d´ıgitos C = C(A, σ1, . . . , σn, c) de comprimento n associado `as escolhas A, c, σ1, . . . , σn

´

e o subconjunto de An definido por:

C := {(a1, . . . , an) ∈ An | σ1(a1) · σ2(a2) · . . . · σn(an) = c}. (12.10)

4E de observar que qualquer grupo (A, ·, e) pode ser visto como um subconjunto do grupo das per-´ muta¸c˜oes (SA, ◦, id), onde cada elemento a ∈ A corresponde a permuta¸c˜ao σa : A → A dada por σa(b) = a·b

(6)

Como qualquer palavra a1. . . an∈ C satisfaz σ1(a1) · . . . · σn(an) = c,

an = σn−1 σn−1(an−1)−1· . . . · σ1(a1)−1· c



(12.11) Portanto, a equa¸c˜ao (12.11) mostra que a ´ultima letra ´e determinada pelas primeiras n − 1 letras. Mostra tamb´em que, para qualquer escolha de letras a1, . . . , an−1 podemos definir

an, para obter uma palavra de c´odigo de C. Logo, C consiste em |An−1| = qn−1 palavras.

Observa¸c˜ao 12.2.1 Um c´odigo C = C(A, σ1, . . . , σn, c) consiste em qn−1 palavras onde

q = |A|. Em particular, a ´ultima letra de cada palavra c´odigo ´e unicamente determinada pelas n − 1 letras iniciais.

Vejamos como os exemplos apresentados anteriormente se encaixam na defini¸c˜ao dos c´odigos de verifica¸c˜ao de d´ıgitos. O c´odigo ISBN j´a foi aqui apresentado anteriormente. Vimos que os n´umeros ISBN a1a2. . . a10 satisfazem:

a1 + 2a2+ 3a3+ 4a4+ 5a5+ 6a6+ 7a7+ 8a8+ 9a9+ 10a10≡ 0 (mod 11). (12.12)

Neste caso, temos que A = {0, 1, . . . , 9, X}, onde X ´e utilizado no lugar de 10 na ´

ultima posi¸c˜ao. Identificamos (A, ·, e) com o grupo Abeliano (Z11, +, 0), escolhemos as

per-muta¸c˜oes σi, tais que σi(a) := ia (mod 11), para 1 ≤ i ≤ 10 e c = 0. Assim, um n´umero

a1a2. . . a10 ser´a um n´umero v´alido de ISBN se pertencer ao c´odigo C(Z11, σ1, . . . , σ10, 0).5

Note-se que nem todas as palavras de C s˜ao n´umeros v´alidos de ISBN, porque a letra X que corresponde ao n´umero 10, s´o ´e utilizada na ´ultima posi¸c˜ao dos n´umeros de ISBN.

Sobre o c´odigo EAN-13 j´a vimos que para verificar a validade de um n´umero, a1a2. . . a13,

se teria de utilizar a equa¸c˜ao (12.5). Neste caso, temos A = {0, 1, . . . , 9}. Identificamos (A, ·, e) com o grupo Abeliano (Z10, +, 0) e escolhe-se c = 0. Considere-se a permuta¸c˜ao

α = 0 1 2 3 4 5 6 7 8 9 0 3 6 9 2 5 8 1 4 7

 .

As permuta¸c˜oes σ2i = α, para 1 ≤ i ≤ 6, e σ2i−1 a fun¸c˜ao identidade, para 1 ≤ i ≤ 7,

permitem definir o c´odigo EAN-13. Uma palavra a1a2. . . a13 ser´a um n´umero v´alido de

EAN-13 se pertencer ao c´odigo C(Z10, σ1, . . . , σ13, 0).

Um outro c´odigo apresentado anteriormente foi o do n´umero do BI. Vimos que um n´umero de BI, a1a2. . . a8, seguido do d´ıgito de verifica¸c˜ao a9 ´e v´alido se verifica a equa¸c˜ao

(12.7). Seja A = {0, 1, . . . , 9}. Assim, identificamos (A, ·, e) com o grupo Abeliano (Z11, +, 0) e escolhemos as permuta¸c˜oes σi, tais que:

σi(a) ≡ (10 − i)a (mod 11), ∀a ∈ A (12.13)

5Como 11 ´e um n´umero primo, pelo algoritmo de Euclides existe para qualquer 1 ≤ i ≤ 10 um n´umero

(7)

para 1 ≤ i ≤ 9 e c = 0. Um n´umero de BI, a1a2. . . a8a9, ser´a v´alido se pertencer ao c´odigo

C(Z11, σ1, . . . , σ9, 0). ´E de relembrar que nem todos os n´umeros de BI utilizados verificam

a equa¸c˜ao (12.7), uma vez que quando o d´ıgito de verifica¸c˜ao ´e 0 ou 10 o s´ımbolo que ´e associado, em qualquer um dos casos ´e o 0.

Vejamos, por ´ultimo, o caso do n´umero do cart˜ao de cr´edito. Neste caso, A = {0, 1, . . . , 9}. Identificamos (A, ·, e) com o grupo Abeliano (Z10, +, 0) e escolhemos c = 0.

Considere-se a permuta¸c˜ao

α = 0 1 2 3 4 5 6 7 8 9 0 2 4 6 8 1 3 5 7 9

 .

Para cada 1 ≤ i ≤ 8, seja σ2i a fun¸c˜ao identidade e σ2i−1 = α. Desta forma, uma palavra

a1a2. . . a16´e um n´umero v´alido do cart˜ao de cr´edito se pertencer ao c´odigo C(Z10, σ1, . . . , σ16, 0).

Vemos agora quais os erros que os sistemas de verifica¸c˜ao de d´ıgitos podem detectar. Seja C um c´odigo de verifica¸c˜ao de d´ıgitos sobre um grupo (A, ·, e) associado `as permuta¸c˜oes σ1, . . . , σn e c ∈ A. Seja (a1, . . . , an) ∈ C e suponhamos que por alguma raz˜ao a letra na

posi¸c˜ao 1 ≤ i ≤ n foi alterada de ai para b 6= ai. Ent˜ao (a1, . . . , ai−1, b, ai+1, . . . , an) j´a n˜ao

´

e uma palavra do c´odigo porque b 6= ai ⇒ σi(b) 6= σi(ai), portanto

σ1(a1) · . . . · σi−1(ai−1) · σi(b) · σi+1(ai+1) · . . . · σn(an)

6= σ1(a1) · . . . · σi−1(ai−1) · σi(ai) · σi+1(ai+1) · . . . · σn(an) = c.

Logo, se na transmiss˜ao da palavra uma posi¸c˜ao se alterou, esse erro pode ser detectado. Na verdade, o facto de cada σi ser uma permuta¸c˜ao assegura que todos os erros singulares

s˜ao detectados. Acab´amos de verificar a observa¸c˜ao:

Observa¸c˜ao 12.2.2 Qualquer c´odigo de verifica¸c˜ao de d´ıgitos da forma C(A, σ1, . . . , σn, c)

detecta todos os erros singulares.

Portanto, segundo a tabela de Verhoeff (figura 12.2), os c´odigos C(A, σ1, . . . , σn, c) detectam

79% dos erros.

O c´odigo European Article Number (EAN-13; o c´odigo de barras) ´e como vimos um c´odigo de verifica¸c˜ao de d´ıgitos sobre o grupo A = (Z10, +, 0) associado a 13 permuta¸c˜oes

σi tal que σ2i(a) ≡ 3a (mod 10) e σ2i−1(a) = a. O EAN-13 consegue assim detectar um

erro. N˜ao consegue no entanto detectar a troca de dois d´ıgitos, pois por exemplo o n´umero 9780521845045 ´e um n´umero v´alido de EAN-13, mas o n´umero 9785021845045 tamb´em o ´

e. Portanto, se na transmiss˜ao do n´umero os d´ıgitos nas posi¸c˜oes 4 e 5 forem trocados, isto ´

e, a4 e a5 forem transpostos, ent˜ao o receptor n˜ao detectar´a este erro.

J´a mencionamos informalmente o tipo de erro da transposi¸c˜ao adjacentes (antes da figura 12.2), mas queremos formalizar este conceito agora. Denotamos por τia transposi¸c˜ao

que troca os d´ıgitos nas posi¸c˜oes i e i + 1 das palavras de An, isto ´e, τi : An → An com

(8)

Defini¸c˜ao 12.2.3 Um c´odigo de bloco C detecta transposi¸c˜oes adjacentes se, para qual-quer ω ∈ C e 1 ≤ i ≤ n − 1, se τi(ω) ∈ C ent˜ao ω = τi(ω).

Nem todos os c´odigos de blocos detectam todas as transposi¸c˜oes adjacentes. Por exemplo, o c´odigo de verifica¸c˜ao de paridade6

Pn(A) = C(A, id, id, . . . , id

| {z }

n

, e), sobre qualquer grupo n˜ao trivial (A, ·, e) e com n ≥ 2, n˜ao detecta transposi¸c˜oes adjacentes, porque para qualquer x 6= e em A: (x, x−1, e, . . . , e) e (x, e, x−1, . . . , e) ∈ Pn(A).

Por outro lado, o sistema de verifica¸c˜ao de d´ıgitos C utilizado no BI detecta erros de transposi¸c˜oes adjacentes. Para verificar que assim ´e, note-se que neste caso as permuta¸c˜oes utilizadas s˜ao as apresentadas em (12.13). Consideremos ent˜ao a1. . . a9 uma palavra ω de

C. Suponhamos que ocorreu uma transposi¸c˜ao entre as posi¸c˜oes i e i + 1, obtendo-se assim a palavra ω0 = a1. . . ai−1ai+1aiai+2. . . a9. Como ω ∈ C:

σ1(a1) + σ2(a2) + . . . + σi−1(ai−1) + σi(ai) + σi+1(ai+1) + . . . + σ9(a9) ≡ 0 (mod 11) (12.14)

Por outro lado, se ω0 ∈ C, ter´ıamos:

σ1(a1) + σ2(a2) + . . . + σi−1(ai−1) + σi(ai+1) + σi+1(ai) + . . . + σ9(a9) ≡ 0 (mod 11) (12.15)

Daqui resultaria:

σi(ai) + σi+1(ai+1) ≡ σi(ai+1) + σi+1(ai) (mod 11)

⇔ (10 − i)ai− (10 − i − 1)ai ≡ (10 − i)ai+1− (10 − i − 1)ai+1 (mod 11)

⇔ ai ≡ ai+1 (mod 11)

Assim, se ai 6= ai+1, ent˜ao a1. . . ai−1ai+1aiai+2. . . a9 ∈ C./

Seja C um c´odigo de verifica¸c˜ao de d´ıgitos associado `as permuta¸c˜oes σ1, . . . , σn e a um

elemento c ∈ A. Suponhamos que a1. . . an e a1. . . ai−1ai+1aiai+2. . . an s˜ao palavras de C.

Ent˜ao:

σ1(a1) · . . . · σi−1(ai−1) · σi(ai) · σi+1(ai+1) · σi+2(ai+2) · . . . · σn(an) = c (12.16)

σ1(a1) · . . . · σi−1(ai−1) · σi(ai+1) · σi+1(ai) · σi+2(ai+2) · . . . · σn(an) = c (12.17)

Das igualdades anteriores obtem-se:

σi(ai) · σi+1(ai+1) = σi(ai+1) · σi+1(ai). (12.18)

Se definirmos x = σi(ai), y = σi(ai+1) e T := σi+1◦ σ−1i , ent˜ao teremos:

σi+1(ai+1) = σi+1(σ−1i (σi(ai+1))) = T (y) (12.19)

6Um caso particular ´e o c´odigo ASCII que ´e o c´

(9)

e analogamente σi+1(ai) = T (x). Logo, a equa¸c˜ao (12.18) lˆe-se:

x · T (y) = y · T (x) (12.20)

Portanto, se C cont´em uma palavra ω tal que a palavra ω0 = τi(ω) obtida por

trans-posi¸c˜ao de duas letras adjacentes na posi¸c˜ao i e i + 1 pertence a C, ent˜ao a permuta¸c˜ao T = σi+1◦ σ−1i satisfaz (12.20).

Defini¸c˜ao 12.2.4 Uma permuta¸c˜ao T de um grupo (A, ·, e) diz-se anti-sim´etrica se x · T (y) 6= y · T (x)

para quaisquer x 6= y ∈ A.

Tendo em conta o que foi discutido antes conclui-se que C(A, σ1, . . . , σn, c) detecta

trans-posi¸c˜oes adjacentes se σi+1σ−1i s˜ao permuta¸c˜oes anti-sim´etricas para qualquer 1 ≤ i < n.

Teorema 12.2.5 Seja (A, ·, e) um grupo. Ent˜ao existe um c´odigo C(A, σ1, . . . , σn, c) com

n ≥ 2 que detecta todas as transposi¸c˜oes adjacentes se e s´o se existe uma permuta¸c˜ao anti-sim´etrica T : A → A.

Demonstra¸c˜ao: Suponhamos que C = C(A, σ1, . . . , σn, c) detecta transposi¸c˜oes adjacentes

e seja T = σ2σ−11 . Para quaisquer x, y ∈ A defina-se u = σ −1

1 (x) e v = σ −1

1 (y). Ent˜ao,

a palavra (u, v, e, e, . . . , e, w) ∈ C, onde w ´e determinado pela equa¸c˜ao (12.11). Como (v, u, e, e, . . . , e, w) 6∈ C, obtemos:

σ1(u) · σ2(v) 6= σ1(v) · σ2(u) ⇔ x · T (y) 6= y · T (x), (12.21)

o que mostra que T ´e anti-sim´etrica.

Reciprocamente, suponhamos agora que T ´e uma permuta¸c˜ao anti-sim´etrica. Para qualquer n ≥ 2 e c ∈ A consideremos o c´odigo C = C(A, T, T2, T3, . . . , Tn, c). Na nossa

terminologica anterior temos σi = Ti. Como

σi+1◦ σi−1 = T

i+1◦ (Ti)−1

= T, (12.22)

para qualquer 1 ≤ i < n, ´e uma permuta¸c˜ao anti-sim´etrica, obtemos que C detecta trans-posi¸c˜oes adjacentes. 

A partir do resultado anterior, conclu´ımos que, para procurarmos c´odigos de verifica¸c˜ao de d´ıgitos sobre grupos que detectem transposi¸c˜oes adjacentes, devemos procurar grupos finitos que permitam a existˆencia de permuta¸c˜oes anti-sim´etricas.

Teorema 12.2.6 Qualquer grupo finito de cardinalidade ´ımpar admite um sistema de ver-ifica¸c˜ao de d´ıgitos que detecta todas as transposi¸c˜oes adjacentes.

(10)

Demonstra¸c˜ao: Seja (A, ·, e) um grupo finito com |A| ´ımpar. Defina-se T (x) := x−1, para x ∈ A. Obviamente T ´e uma permuta¸c˜ao. Sejam x, y ∈ A e suponhamos que x · y−1 = x · T (y) = y · T (x) = y · x−1 ent˜ao (x · y−1)2 = x · y−1 · y · x−1 = e. Logo, a

ordem de x · y−1 ´e menor ou igual a 2. Como a ordem de qualquer elemento de A divide a cardinalidade de A e como |A| ´e ´ımpar, podemos concluir que a ordem de x · y−1 ´e 1, isto ´

e, x = y. Logo T ´e anti-sim´etrica. 

O pr´oximo exemplo mostra que existem grupos de ordem par sobre as quais n˜ao ex-istem sex-istemas de verifica¸c˜ao de d´ıgitos que detectem todas as transposi¸c˜oes adjacentes. Consideremos o grupo Abeliano (Z10, +, 0) e suponhamos que existe uma permuta¸c˜ao

anti-sim´etrica T : Z10 → Z10, isto ´e, T ´e uma fun¸c˜ao que admite uma fun¸c˜ao inversa, tal que

x+T (y) 6= y +T (x), para quaisquer x, y ∈ Z10, x 6= y. Isto implica que x−T (x) 6= y −T (y),

para x 6= y. Logo, a fun¸c˜ao ˜T : Z10→ Z10 com ˜T (x) = x − T (x) ´e injectiva e logo admite

inversa. Como: 0 ≡ 1 + 9 ≡ 2 + 8 ≡ 3 + 7 ≡ 4 + 6 (mod 10), (12.23) tem-se que 5 = 9 X x=0 x = 9 X x=0 ˜ T (x) = 9 X x=0 (x − T (x)) = 9 X x=0 x ! − 9 X x=0 T (x) ! = 0 (12.24)

o que ´e absurdo. Portanto, n˜ao pode existir uma permuta¸c˜ao anti-sim´etrica do grupo (Z10, +, 0). Consequentemente, n˜ao existe sistema de verifica¸c˜ao de d´ıgitos sobre (Z10, +, 0)

que detecte todas as transposi¸c˜oes adjacentes.

Defini¸c˜ao 12.2.7 Sejam A um grupo, T : A → A uma fun¸c˜ao e ˜T : A → A a fun¸c˜ao definida por ˜T (x) := x · T (x)−1, para todo x ∈ A. A fun¸c˜ao T diz-se um ortomorfismo de A se T e ˜T forem ambas permuta¸c˜oes.

Se A for um grupo Abeliano, ent˜ao T ´e uma permuta¸c˜ao anti-sim´etrica se e s´o se ´e um ortomorfismo, porque x·T (y) 6= y·T (x) ´e equivalente a ˜T (x) = x·T (x)−1 6= y·T (y)−1 = ˜T (y)

para quaisquer x, y ∈ A, isto ´e, ˜T ´e injectiva e portanto ´e uma permuta¸c˜ao. O exemplo anterior sugere o seguinte teorema.

Teorema 12.2.8 Seja A um grupo Abeliano finito com um ´unico elemento de ordem 2. N˜ao existe nenhum sistema de verifica¸c˜ao de d´ıgitos sobre A que detecte todas as trans-posi¸c˜oes adjacentes.

Demonstra¸c˜ao: Seja x o ´unico elemento de ordem 2 do grupo A. Suponhamos que T ´e um ortomorfismo e seja ˜T (a) = a · T (a)−1, para a ∈ A. A ideia ´e calcular o produto de todos os elementos de A, que dever´a por um lado ser igual a x, mas aplicando ˜T , igual ao elemento neutro e, o que ´e absurdo uma vez que x 6= e. Para formalizar esta ideia, definimos uma rela¸c˜ao de equivalˆencia: dois elementos a, b ∈ A dizem-se equivalentes, se e s´o se a = b ou a = b−1. Portanto, juntamos cada elemento com o seu inverso e como

(11)

A s´o tem um elemento de ordem dois, x, e um elemento de ordem um, e, todas as outras classes de equivalˆencia consistem em dois elementos. Sejam e, x, a1, . . . , an representantes

das classes de equivalˆencia. Ent˜ao, Y a∈A a = e · x · n Y i=1 (ai· a−1i ) = x (12.25) e Y a∈A a = Y a∈A ˜ T (a) = Y a∈A (a · T (a)−1) = Y a∈A a ! · Y a∈A T (a) !−1 = x · x−1 = e, (12.26)

o que ´e absurdo, pois x 6= e. Logo, n˜ao pode existir nenhum ortomorfismo e consequente-mente n˜ao existe nenhum sistema de verifica¸c˜ao de d´ıgitos sobre A que detecte todas as transposi¸c˜oes adjacentes. 

Em 1947, Lowell Paige mostrou que um grupo Abeliano finito admite uma permuta¸c˜ao anti-sim´etrica se e s´o se n˜ao cont´em nenhum elemento de ordem dois ou possui mais do que um (Paige, 1947). A demonstra¸c˜ao do Teorema de Paige ´e feita abaixo usando um algoritmo que permite, a partir de uma permuta¸c˜ao qualquer de um grupo finito A, construir uma permuta¸c˜ao T , tal que | ˜T (A)| ≥ |A| − 1. A demonstra¸c˜ao apresentada ´e a de Paige de 1947. Outras demonstra¸c˜oes s˜oa poss´ıveis.

Teorema 12.2.9 Seja A um grupo Abeliano de ordem n. Existe uma permuta¸c˜ao T de A tal que | ˜T (A)| ≥ n − 1.

Demonstra¸c˜ao: Basta provar, que para qualquer permuta¸c˜ao T de A com | ˜T (A)| < n − 1 existe uma permuta¸c˜ao S tal que | ˜T (A)| < | ˜S(A)|.

Sejam m = | ˜T (A)| e B ⊂ A um subconjunto com m elementos tal que ˜T (B) = ˜T (A). Como m ≤ n−2 existem elementos u, v ∈ A\B com u 6= v. Seja a1 ∈ B com ˜T (a1) = ˜T (u).

Se a1T (v)−1 6∈ ˜T (A) ent˜ao define-se uma permuta¸c˜ao S de A por:

S :    a1 → T (v) v → T (a1) x → T (x) se x 6= a1, v

Como ˜S(u) = ˜T (u) = ˜T (a1) e ˜S(x) = ˜T (x) para x ∈ B \ {a1}, tem-se que ˜T (A) ⊆ ˜S(A).

Como ˜S(a1) = a1T (v)−1 ∈ ˜S(A) \ ˜T (A), conclui-se que | ˜S(A)| > m.

Se a1T (v)−1 ∈ ˜T (A), ent˜ao existe a2 ∈ B tal que ˜T (a2) = a1T (v)−1. Logo a1 6= a2, caso

contr´ario T (a2) = T (v), ou seja, a2 = v, o que ´e imposs´ıvel j´a que v 6∈ B.

Se a2T (a1)−1 6∈ ˜T (A) define-se uma permuta¸c˜ao S de A tal que:

S :            a1 → T (v) a2 → T (a1) v → T (a2) x → T (x) se x 6= a1, a2, v e observamos que ˜ S(u) = T (u)˜ = T (a˜ 1) ˜ S(a1) = a1T (v)−1 = T (a˜ 2) ˜ S(a2) = a2T (a1)−1 6∈ T (A)˜

(12)

Logo ˜T (A) ( ˜S(A), isto ´e, | ˜S(A)| > m.

Se existe a3 ∈ B tal que ˜T (a3) = a2T (a1)−1, ent˜ao a3 6= a1, a2, caso contr´ario a1 = a2.

Enquanto se tiver ai−1T (ai−2)−1 ∈ ˜T (A), podemos continuar do mesmo modo e encontrar

elementos a1, a2, a3, . . . , ak∈ B tais que ai 6= aj para i 6= j e

˜

T (a1) = ˜T (u), T (a˜ 2) = a1T (v)−1, T (a˜ 3) = a2T (a1)−1, · · · , ˜T (ak) = ak−1T (ak−2)−1

Note-se que ˜T (ai) 6= ˜T (aj) para i 6= j. Como B ´e finito este processo tem de terminar.

Obtemos k ≤ |B| tal que akT (ak−1)−1 6∈ ˜T (A) e definimos uma permuta¸c˜ao S de A tal

que: S :                      a1 → T (v) a2 → T (a1) .. . ak → T (ak−1) v → T (ak) x → T (x) se x 6= a1, a2, . . . , ak, v e observamos que ˜ S(u) = T (u)˜ = T (a˜ 1) ˜ S(a1) = a1T (v)−1 = T (a˜ 2) ˜ S(a2) = a2T (a1)−1 = T (a˜ 3) .. . ˜ S(ak−1) = ak−1T (ak−2)−1 = T (a˜ k) ˜ S(ak) = akT (ak−1)−1 6∈ T (A)˜ Logo, | ˜S(A)| > m. 

A demonstra¸c˜ao do resultado anterior ´e construtiva7, fornecendo uma t´ecnica para obter uma permuta¸c˜ao que verifique as condi¸c˜oes do teorema. Vejamos um pequeno exemplo. Seja A o grupo (Z10, +, 0) e T a permuta¸c˜ao identidade, isto ´e, T = id. Teremos assim:

x 0 1 2 3 4 5 6 7 8 9

T (x) 0 1 2 3 4 5 6 7 8 9 ˜

T (x) 0 0 0 0 0 0 0 0 0 0

Neste caso, | ˜T (A)| = 1 e considera-se um subconjunto B de A com 1 elemento, seja B = {a1}, com a1 = 0. Consideremos agora, dois elementos distintos de A\B, u = 1 e v = 2

por exemplo. Assim, temos ˜T (0) = ˜T (1). Uma vez que a1− T (v) = 0 − 2 ≡ 8 (mod 10) e

8 6∈ ˜T (A), podemos definir uma nova permuta¸c˜ao em A, seja S, tal que S(0) := T (2) = 2, S(2) := T (0) = 0 e S(x) := T (x) para x ∈ A \ {0, 2}. Desta forma, a permuta¸c˜ao S ser´a tal que:

x 0 1 2 3 4 5 6 7 8 9

S(x) 2 1 0 3 4 5 6 7 8 9 ˜

S(x) 8 0 2 0 0 0 0 0 0 0

Observamos que ˜T (A) ⊂ ˜S(A) = {0, 2, 8}. Ent˜ao, considere-se um conjunto B com 3 elementos tal que ˜S(B) = ˜S(A), seja B = {0, 1, 2}. Agora, de A \ B consideremos dois elementos distintos, u = 3 e v = 4. Note-se que ˜S(1) = ˜S(u), portanto escolhemos a1 := 1.

(13)

Uma vez que a1 − S(v) = 1 − 4 ≡ 7 (mod 10) e 7 6∈ ˜S(A), podemos definir uma nova

permuta¸c˜ao em A, seja S2, tal que S2(1) := S(4), S2(4) := S(1) e S2(x) := S(x) para

x ∈ A \ {1, 4}. Desta forma, a permuta¸c˜ao S2 ser´a tal que:

x 0 1 2 3 4 5 6 7 8 9

S2(x) 2 4 0 3 1 5 6 7 8 9

˜

S2(x) 8 7 2 0 3 0 0 0 0 0

Analisando a tabela anterior observa-se que ˜T (A) ⊂ ˜S2(A) = {0, 2, 3, 7, 8}. Procedendo

de forma an´aloga `as anteriores, consideremos B = {0, 1, 2, 3, 4}, u = 5 e v = 6. Agora, sendo ˜S2(3) = ˜S2(u), considere-se a1 := 3. Mas como, a1− S2(v) = 3 − 6 ≡ 7 (mod 10)

e 7 = ˜S2(1) ∈ ˜S(A), ent˜ao tomamos a2 := 1, pois ˜S2(a2) = a1 − S2(v). Agora, tem-se

a2− S2(a1) = 1 − 3 ≡ 8 (mod 10) e 8 = ˜S2(0) ∈ ˜S(A). Desta forma, considere-se a3 := 0,

j´a que ˜S2(a3) = a2− S2(a1). Assim, tem-se a3− S2(a2) = 0 − 4 ≡ 6 (mod 10) e uma vez

que 6 6∈ ˜S2(A), podemos definir uma nova permuta¸c˜ao em A, seja S3tal que S3(3) := S2(6),

S3(1) := S2(3), S3(0) := S2(1), S3(6) := S2(0) e S3(x) := S2(x) para x ∈ A \ {0, 1, 3, 6}.

Logo, a permuta¸c˜ao S3 ser´a tal que:

x 0 1 2 3 4 5 6 7 8 9

S3(x) 4 3 0 6 1 5 2 7 8 9

˜

S3(x) 6 8 2 7 3 0 4 0 0 0

Observando a permuta¸c˜ao agora constru´ıda conclu´ımos que ˜T (A) ⊂ ˜S3(A) = {0, 2, 3, 4,

6, 7, 8}. Se se continuar esta constru¸c˜ao, obter-se-´a a permuta¸c˜ao S5 de A tal que | ˜S5(A)| =

9 = 10 − 1: S5 =  0 1 2 3 4 5 6 7 8 9 0 9 6 2 7 1 8 4 3 5  ˜ S5 =  0 1 2 3 4 5 6 7 8 9 0 2 6 1 7 4 8 3 5 4 

Com o ´ultimo resultado estamos em condi¸c˜oes de demonstrar o Teorema seguinte, que permitir´a resolver o problema de detectar todas as transposi¸c˜oes adjacentes, recorrendo a grupos Abelianos finitos.

Teorema 12.2.10 (Paige, 1946) Seja A um grupo Abeliano finito. Existe um sistema de verifica¸c˜ao de d´ıgitos sobre A que detecta todas as transposi¸c˜oes adjacentes se e s´o se A n˜ao tem nenhum elemento de ordem dois ou tem mais do que um.

Demonstra¸c˜ao: Seja A um grupo Abeliano de ordem n. Se existe um sistema de veri-fica¸c˜ao de d´ıgitos sobre A que detecta todas as transposi¸c˜oes adjacentes, ent˜ao A n˜ao pode ter um ´unico elemento de ordem 2 pelo Teorema 12.2.8. Suponhamos pois que A n˜ao tem nenhum elemento de ordem dois ou tem mais do que um. Os elementos de ordem menor ou igual a 2 formam um subgrupo U de A e, como na prova do Teorema 12.2.8, podemos verificar queQ

a∈Aa =

Q

u∈U u. Como A n˜ao tem nenhum elemento de ordem dois ou tem

mais do que um, U = {e} ou |U | = 2k, com k ≥ 2, e existem k geradores u

(14)

U , tal que qualquer elemento de U tem uma representa¸c˜ao ´unica da forma u = uα1

1 · · · u αk

k

onde αi ∈ {0, 1}.8 Logo, como k > 1, 2k−1 ´e par, u2

k−1 i = e e Y a∈A a = Y u∈U u = Y α∈{0,1}k uα1 1 · · · u αk k = k Y i=1 u2ik−1 = e (12.27)

Utilizando o algoritmo do Teorema 12.2.9 podemos construir (por exemplo, a partir da identidade) uma permuta¸c˜ao T de A, tal que | ˜T (A)| ∈ {n − 1, n}. Seja B ⊆ A tal que |B| = n − 1 e ˜T (x) 6= ˜T (x0), para todo x, x0 ∈ B com x 6= x0. Seja y ∈ A \ B. Como

e = yQ x∈Bx tem-se que Q x∈Bx = y −1. Analogamente, tem-se Q x∈BT (x) −1 = T (y). Portanto, para z ∈ A \ ˜T (B): e = zY x∈B ˜ T (x) = z Y x∈B

xT (x)−1 = zy−1T (y) ⇒ ˜T (y) = yT (y)−1 = z. (12.28)

Logo, ˜T (A) = A, isto ´e, T ´e uma permuta¸c˜ao anti-sim´etrica e pelo Teorema 12.2.5 existe um sistema de verifica¸c˜ao de d´ıgitos sobre A. 

O Teorema 12.2.10 confirma que n˜ao pode existir um sistema de verifica¸c˜ao de d´ıgitos que detecte todas as transposi¸c˜oes adjacentes sobre (Z10, +, 0), porque (Z10, +, 0) tem um

´

unico elemento de ordem 2. Existe prov´em um grupo n˜ao Abeliano com 10 elementos que detecta todas as transposi¸c˜oes adjacentes. Assim, para resolver o problema de determinar grupos onde existam permuta¸c˜oes anti-sim´etricas, somos motivados a procur´a-los dentro dos grupos n˜ao Abelianos. Vejamos o caso dos chamados “grupos diedrais”.

O grupo diedral Dn, com n ≥ 2, ´e constitu´ıdo pelas simetrias do plano que fixam um

pol´ıgono regular com n v´ertices. Tais simetrias, tˆem de fixar necessariamente o centro geom´etrico do pol´ıgono, assim sendo ter˜ao de ser rota¸c˜oes ou relex˜oes. O grupo diedral Dn´e gerado por uma rota¸c˜ao de 360/n graus e por uma reflex˜ao, sendo ent˜ao constitu´ıdo

por 2n elementos.9

Uma forma de representar este grupo consiste em usar matrizes 10:

Dn =  a b 0 1  ∈ M2(Zn) | a ∈ {1, −1} 

onde a rota¸c˜ao de 360b/n graus, corresponde `a matriz  1 b 0 1  , e a reflex˜ao corresponde ` a matriz  −1 0 0 1 

. Dn ser´a assim um grupo com a multiplica¸c˜ao de matrizes. Para

8Repare que, para qualquer elemento u ∈ U , o subgrupo V gerado por u tem exactamente 2 elementos e

pelo Teorema de Lagrange |U | = |V ||U/V | = 2|U/V |. Aplicando este argumento sucessivamente, podemos verificar que existe um n´umero k, tal que |U | = 2k e elementos u

1, . . . , uk que geram U . Logo U ' Zk2. 9Toda a simetria do pol´ıgono ´e uma composi¸ao de uma rota¸ao e uma reflex˜ao.

10M

(15)

(a) D3 (b) D4 (c) D5

Figura 12.3: Simetrias de pol´ıgonos n = 3, 4, 5

simplificar a nota¸c˜ao escrevemos (a, b) com a = ±1 e b ∈ Zn e assim a multiplica¸c˜ao de

matrizes corresponder´a `a opera¸c˜ao:

(a, b) · (a0, b0) = (aa0, ab0 + b). (12.29) O elemento neutro ´e (1, 0) e o inverso de (a, b) ´e (a, −ab) — repare que a2 = 1, para a ∈ {1, −1}.

Teorema 12.2.11 Sobre qualquer grupo Dn com n ≥ 2 existem sistemas de verifica¸c˜ao de

d´ıgitos que detectam todas as transposi¸c˜oes adjacentes.

Demonstra¸c˜ao: S´o vamos indicar uma permuta¸c˜ao anti-sim´etrica no caso de n ´ımpar. No caso de n ser um n´umero par tamb´em ´e poss´ıvel definir uma permuta¸c˜ao anti-sim´etrica (Teorema 4.2 em (Schulz, 2000)). Seja n ´ımpar, ent˜ao podemos definir uma permuta¸c˜ao T por:

T (1, b) := (1, −b) e T (−1, b) = (−1, b + 1) (12.30) para qualquer b ∈ Zn. Para dois elementos (1, b), (1, c) tem-se que

(1, b) · T (1, c) = (1, b) · (1, −c) = (1, b − c). (12.31) Logo, se (1, b) · T (1, c) = (1, c) · T (1, b), ent˜ao b − c ≡ c − b (mod n) ⇒ 2b ≡ 2c (mod n) e como 2 n˜ao divide n teremos b = c. Analogamente, mostra-se que (−1, b) · T (−1, c) = (−1, c)T (−1, b) ⇒ b = c. Para dois elementos (1, b), (−1, c) tem-se:

(1, b) · T (−1, c) = (−1, c + b + 1) e (−1, c) · T (1, b) = (−1, c + b) (12.32) Logo, (1, b) · T (−1, c) 6= (−1, c) · T (1, b) para qualquer b, c. Portanto, T ´e uma permuta¸c˜ao anti-sim´etrica. 

Um exemplo da utiliza¸c˜ao dos grupos diedrais, num sistema de verifica¸c˜ao de d´ıgitos, ´e nas notas do antigo sistema monet´ario alem˜ao — o Marco alem˜ao. Para verificar a vali-dade de uma nota utilizou-se um sistema de verifica¸c˜ao de d´ıgitos sobre o grupo diedral D5.

(16)

Identificamos os elementos do grupo D5com as matrizes {(1, 0), . . . , (1, 4), (−1, 0), . . . , (−1, 4)}

que podemos tamb´em codificar pelos d´ıgitos entre 0 e 9 por (1, b) 7→ b e (−1, b) 7→ b + 5 para 0 ≤ b ≤ 4, ou seja (a, b) 7→ b + 5|a|−a2 . Utilizando esta codifica¸c˜ao, a multiplica¸c˜ao de D5 toma a forma apresentada na figura 12.4.

(1, 0) (1, 1) (1, 2) (1, 3) (1, 4) (−1, 0) (−1, 1) (−1, 2) (−1, 3) (−1, 4) 0 1 2 3 4 5 6 7 8 9 (1, 0) 7→ 0 0 1 2 3 4 5 6 7 8 9 (1, 1) 7→ 1 1 2 3 4 0 6 7 8 9 5 (1, 2) 7→ 2 2 3 4 0 1 7 8 9 0 1 (1, 3) 7→ 3 3 4 0 1 2 8 9 0 1 2 (1, 4) 7→ 4 4 0 1 2 3 9 0 1 2 3 (−1, 0) 7→ 5 5 9 8 7 6 0 4 3 2 1 (−1, 1) 7→ 6 6 5 9 8 7 1 0 4 3 2 (−1, 2) 7→ 7 7 6 5 9 8 2 1 0 4 3 (−1, 3) 7→ 8 8 7 6 5 9 3 2 1 0 1 (−1, 4) 7→ 9 9 8 7 6 5 4 3 2 1 0 Figura 12.4: Multiplica¸c˜ao de D5

Figura 12.5: Deutsche Mark Em cada nota encontrava-se inscrita

uma sequˆencia de 11 d´ıgitos a1a2x1x2x3x4x5x6x7a3p,

onde ai ∈ {A, D, G, K, L, N, S, U, Y, Z} e

xi, p ∈ {0, 1, 2, . . . , 9}.

As letras foram codificados em d´ıgitos entre 0 e 9, como se ilustra na tabela abaixo.

A D G K L N S U Y Z 0 1 2 3 4 5 6 7 8 9 Utilizando a permuta¸c˜ao σ =  0 1 2 3 4 5 6 7 8 9 1 5 7 6 2 8 3 0 9 4  define-se um sistema de verifica¸c˜ao de d´ıgitos C = C(D5, σ, σ2, σ3, . . . , σ11, id, 0). Note-se que σ tem ordem 8,

isto ´e, σ8 = id.

Por exemplo, o n´umero GN 2494664L9 ´e v´alido porque:

σ(2) · σ2(5) · σ3(2) · σ4(4) · σ5(9) · σ6(4) · σ7(6) · 6 · σ(4) · σ2(4) · 9 = (7 · 9) · (1 · 1) · (1 · 8) · (3 · 6) · (2 · 7) · 9

= (3 · 2) · (9 · 9) · (9 · 9) = 0 · 0 · 0 = 0

(17)

O exemplo da verifica¸c˜ao do n´umero de s´erie das notas do antigo sistema monet´ario alem˜ao conduz a seguinte quest˜ao: Qual o sistema de verifica¸c˜ao do n´umero de s´erie das notas de Euro?

Figura 12.6: Nota de 10 euros Contrariamente ao que talvez se possa

esperar, ap´os a an´alise de um exemplo t˜ao sofisticado, n˜ao s˜ao necess´arios grandes conhecimentos matem´aticos para entender o sistema de verifica¸c˜ao presente neste sis-tema monet´ario. Na realidade, o sistema de verifica¸c˜ao aqui presente apenas associa ao primeiro d´ıgito (uma letra) do n´umero de s´erie um valor num´erico p (que codifica o pa´ıs de origem). Posteriormente, e para verificar a validade do n´umero de s´erie,

ape-nas teremos de verificar se a soma dos restantes 11 d´ıgitos ´e congruente com p m´odulo 9. Vejamos um exemplo. Vamos verificar se o n´umero de s´erie S00212913862 presente na nota de 10 euros da figura (12.6) ´e de facto v´alido.

Uma pequena pesquisa feita na internet sobre este assunto11 e descobrimos que a letra

S corresponde ao n´umero 7 e mais, descobrimos tamb´em que esta nota que hoje circula no nosso pa´ıs, foi emitida na It´alia. Agora, se fizermos:

0 + 0 + 2 + 1 + 2 + 9 + 1 + 3 + 8 + 6 + 2 = 34 ≡ 7 (mod 9)

E, desta forma t˜ao simples, verificamos que o n´umero de s´erie desta nota ´e de facto v´alido. Se o leitor pretende verificar outros n´umeros de s´erie das notas de euro, basta descodificar a primeira letra do n´umero de s´erie da nota utilizando a seguinte tabela:

Letra Z Y X V U T S P N M L H G F E

Valor 0 1 2 4 5 6 7 1 3 4 5 0 1 2 3

Pa´ıs B GR D E F IRL I NL A PT FIN SLO CY M SK

Voltando `a quest˜ao da determina¸c˜ao dos grupos onde existem permuta¸c˜oes anti-sim´ e-tricas, ´e importante referir que este ´e um problema que ainda n˜ao est´a completamente re-solvido. A conjectura de Gallian-Mullin afirma que qualquer grupo finito n˜ao Abeliano admite uma permuta¸c˜ao anti-sim´etrica (Gallian et al, 1995). Esta conjectura foi parcial-mente provada por Stefan Heiss em (Heiss, 1997) para grupos sol´uveis. Muito semelhante ´

e a conjectura de Hall-Paige que afirma que qualquer grupo A que n˜ao tem nenhum elemento de ordem dois ou possui mais do que um tem uma permuta¸c˜ao completa, isto ´

e, uma permuta¸c˜ao T : A → A tal que T−1 ´e um ortomorfismo.

(18)

12.3

Sistemas de verifica¸

ao de d´ıgitos utilizando

quadra-dos latinos

Para definir um sistema de verifica¸c˜ao de d´ıgitos sobre um grupo finito (A, ·, e), como por exemplo,

C := {(a1, . . . , an) ∈ An | a1· a2· . . . · an−1 = an}

a associatividade do produto · n˜ao ´e necess´aria, podendo-se verificar se uma palavra per-tence a C por exemplo:

(· · · ((a1· a2) · a3) · · ·) · an−1 = an.12 (12.33)

Um par (A, ·) ´e um quasi-grupo se A ´e um conjunto n˜ao vazio, · : A × A → A ´e uma opera¸c˜ao bin´aria, tal que para todos a, b ∈ A as equa¸c˜oes a · x = b e y · a = b tˆem ambas uma ´unica solu¸c˜ao. Em particular, a opera¸c˜ao · satisfaz a lei do corte, isto ´e, ab = ac ou ba = ca implica b = c. Por exemplo, se Q3 = {0, 1, 2} e a · b := b − a (mod 3), para

a, b ∈ Q3, ent˜ao para a · x = b obtemos x = (−a) · b = b + a (mod 3) e para y · a = b

obtemos y = b · a = a − b (mod 3). O par (Q3, ·) ´e um quasi-grupo que n˜ao ´e um grupo,

porque (1 · 1) · 1 = 1 6= 2 = 1 · (1 · 1). Uma outra forma de representar quasi-grupos (finitos) ´

e pela sua tabela da multiplica¸c˜ao. A tabela do nosso pequeno exemplo (Q3, ·) ´e

· 0 1 2 0 0 1 2 1 2 0 1 2 1 2 0

Podemos observar que em toda a linha, e em toda a coluna, cada elemento de Q3 aparece

exactamente uma vez, o que est´a de acordo com a defini¸c˜ao de quasi-grupo. Na verdade, a existˆencia e unicidade das solu¸c˜oes das equa¸c˜oes a · x = b e y · a = b implica que as fun¸c˜oes x 7→ a · x e y 7→ y · a sejam permuta¸c˜oes. Portanto, um quasi-grupo (A, ·) com n elementos ´e equivalente a um quadrado n × n cujas linhas e colunas s˜ao permuta¸c˜oes de A. Estes quadrados chamam-se, segundo Leonhard Euler, quadrados latinos.13 Um tipo

de quadrado latino muito conhecido na actualidade ´e o jogo Sudoku, em que o jogador tem de completar um tipo particular de um quadrado latino 9 × 9 (ou seja uma tabela da multiplica¸c˜ao de um quasi-grupo).

Nesta ´ultima sec¸c˜ao estudaremos as propriedades de sistemas de verifica¸c˜ao de d´ıgitos sobre quasi-grupos e analisaremos algumas aplica¸c˜oes de quadrados latinos `a teoria de c´odigos.

12Repare que a nossa escolha das parˆenteses ´e arbitr´aria. O n´umero de escolhas de parˆenteses de um

produto de n elementos ´e igual ao n´umero de Catalan Cn−1= n!(n−1)!(2n−2)!.

13“latinos”, porque no seu estudo, Euler utilizou letras do alfabeto latino para designar os elementos de

(19)

Um c´odigo de verifica¸c˜ao de d´ıgitos C = C(A, σ1, . . . , σn; c) sobre um grupo A com

permuta¸c˜oes σi e c ∈ A foi definido em (12.10) por

C = {(a1, . . . , an) ∈ An| σ1(a1) · σ2(a2) · . . . · σn(an) = c}.

Como a opera¸c˜ao de um quasi-grupo n˜ao ´e necessariamente associativa, uma express˜ao do tipo σ1(a1)·σ2(a2)·. . .·σn(an) ´e amb´ıgua. Para definir uma no¸c˜ao de um c´odigo de verifica¸c˜ao

de d´ıgitos sobre um quasi-grupo temos de clarificar esta ambiguidade. Definimos o produto de n ≥ 1 elementos a1, . . . , an de um quasi-grupo A inductivamente por Q1i=1ai = a1 e

Qn+1

i=1 ai = (

Qn

i=1ai) · an+1, para n ≥ 1. Designamos

Qn

i=1ai tamb´em por (· · · ((a1 · a2) ·

a3) · · ·) · an.

Defini¸c˜ao 12.3.1 Seja (A, ·) um quasi-grupo finito. O conjunto

Cn = {(a1, . . . , an) ∈ An | (· · · ((a1 · a2) · a3) · · ·) · an−1= an}

diz-se o c´odigo de verifica¸c˜ao de d´ıgitos de comprimento n sobre o quasi-grupo A.

Ralph-Hardo Schulz demonstrou o seguinte Teorema em (Schulz, 1991). Teorema 12.3.2 (Schulz) Seja (A, ·) um quasi-grupo finito e n > 3. O conjunto

Cn = {(a1, . . . , an) ∈ An | (· · · ((a1 · a2) · a3) · · ·) · an−1= an}

´

e um c´odigo de bloco que detecta todos os erros singulares.

1. Cn detecta todos os erros de transposi¸c˜ao adjacentes se e s´o se, para todo a, b, c, d ∈ A

com b 6= c:

(i) (a · b) · c 6= (a · c) · b; (ii) b · c 6= c · b;

(iii) [a = d · b ∧ b = d · a] ⇒ a = b;

2. Cn detecta todos os erros de transposi¸c˜ao intercalados se e s´o se, para todo a, b, c, d ∈

A com b 6= c:

(i) ((a · b) · c) · d 6= ((a · d) · c) · b; (ii) (b · c) · d 6= (d · c) · b;

(iii) [d = (a · b) · c ∧ b = (a · d) · c] ⇒ b = d;

Demonstra¸c˜ao: Utilizando a lei do corte podemos provar que Cn detecta todos os erros

singulares. Sejam w = (a1, . . . , an), w0 = (a01, . . . , a 0

n) duas palavras de Cn que coincidem

(20)

Se j = n ent˜ao:

an = (· · · ((a1· a2) · a3) · · ·) · an−1 = a0n, (12.34)

isto ´e, w = w0.

Se 1 < j < n ent˜ao para b := (· · · ((a1· a2) · a3) · · ·) · aj−1 temos

(· · · ((b · aj) · aj+1) · · ·) · an−1 = an= (· · · ((b · a0j) · aj+1) · · ·) · an−1 (12.35)

e pela lei do corte conclu´ımos que b · aj = b · a0j e portanto aj = a0j, isto ´e, w = w0.

Analogamente conclu´ımos que w = w0, se j = 1.

(1) Suponhamos que A verifica todas as condi¸c˜oes (i), (ii) e (iii).

Seja w = (a1, . . . , an−1, an) ∈ Cn e 2 ≤ i ≤ n − 2. Defina-se w0 = (a1, . . . , ai−1, ai+1, ai,

ai+2, . . . , an) e suponhamos que w0 ∈ Cn. Seja b = (· · · (a1· a2) · · ·) · ai−1. Ent˜ao

(· · · ((b · ai) · ai+1) · · ·) · an−1 = an= (· · · ((b · ai+1) · ai· · ·) · an−1. (12.36)

Pela lei do corte obtemos (b · ai) · ai+1= (b · ai+1) · ai e pela condi¸c˜ao (i) obt´em-se ai = ai+1,

isto ´e, w = w0.

Se a transposi¸c˜ao ocorre nas duas primeiras posi¸c˜oes, isto ´e, se i = 1, definimos w0 = (a2, a1, a3, . . . , an). Se w0 ∈ Cn, ent˜ao

(· · · ((a1· a2) · a3) · · ·) · an−1 = an = (· · · ((a2· a1) · a3) · · ·) · an−1. (12.37)

Portanto, pela lei do corte, a1· a2 = a2· a1 e pela condi¸c˜ao (ii) teremos a1 = a2 .

Se a transposi¸c˜ao ocorre nas duas ´ultimas posi¸c˜oes, isto ´e, se i = n − 1, definimos w0 = (a1, . . . , an−2, an, an−1). Suponhamos que w0 ∈ Cn. Seja b = (· · · (a1· a2) · · ·) · an−2.

Ent˜ao como w ∈ Cn obtemos b · an−1 = an. Como w0 ∈ Cn obtemos b · an = an−1. Pela

condi¸c˜ao (iii), obtemos an = an−1, isto ´e, w = w0.

Suponhamos que Cn detecta todas as transposi¸c˜oes adjacentes. Sejam a, b, c ∈ A. Se

(a · b) · c = (a · c) · b, ent˜ao podemos construir a palavra w = (a, b, c, c, . . . , c, x) tal que x = (· · · ((a · b) · c) · c) · · ·) · c, que pertence ao c´odigo Cn. Como (a · b) · c = (a · c) · b, obt´em-se

w0 = (a, c, b, c, . . . , c, x) ∈ Cn. Como Cn detecta todas as transposi¸c˜oes adjacentes, teremos

b = c. Ou seja, A satisfaz a condi¸c˜ao (i).

Analogamente, se b · c = c · b definem-se as palavras w = (b, c, b, . . . , b, x) e w0 = (c, b, b, . . . , b, x). Como w, w0 ∈ Cn teremos b = c, isto ´e, A satisfaz condi¸c˜ao (ii).

Se a = d · b e b = d · a, ent˜ao definimos w = (a, . . . , a, x, b, a) e w0 = (a, . . . , a, x, a, b) onde x ´e a solu¸c˜ao da equa¸c˜ao14 an−3· x = d. Ent˜ao, w, w0 ∈ C

n e consequentemente b = a,

isto ´e, A satisfaz (iii).

Analogamente se mostraria (2). 

(21)

Exerc´ıcio 12.3.3 Resolva o seguinte puzzle Sudoku: 9 1 5 4 7 4 9 3 5 4 7 2 8 6 2 5 9 6 3 5 2 4 1 6 2 5 3 6 8 4 2 6 1 5 6 7

Ser´a que os c´odigos Cn sobre o quasi-grupo cuja tabela de multiplica¸c˜ao ´e dada por este

quadrado de Sudoku detectam todas as transposi¸c˜oes adjacentes ?

As condi¸c˜oes 1(i-iii) verificam-se no exemplo do quasi-grupo Q3. Note-se que nenhum

grupo satisfaz a condi¸c˜ao 1(i) e nenhum quasi-grupo Abeliano verifica a condi¸c˜ao 1(ii). Podemos utilizar grupos para obter quasi-grupos. Sejam (G, ·, e) um grupo e α, β, γ permuta¸c˜oes de G. Defina-se um novo produto em G por

a ∗ b := γ(α(a) · β(b)) (12.38)

para todo a, b ∈ G. Verifique-se que x = β−1(α(a)−1· γ−1(b)) ´e a ´unica solu¸c˜ao da equa¸c˜ao

a ∗ x = b e analogamente y = α−1(γ−1(b) · β(a)−1) ´e a ´unica solu¸c˜ao da equa¸c˜ao y ∗ a = b. Designamos este quasi-grupo por Gα,β,γ.

No caso dos exemplos c´ıclicos Zm podemos definir as seguintes permuta¸c˜oes: α(a) = ha

e β(a) = ka, onde h e m s˜ao dois n´umeros primos entre si15, assim como k e m, e γ(a) = a+l

para qualquer l ∈ Zm. Logo, o novo produto em Zm ´e a ∗ b ≡ ha + kb + l (mod m). Este

quasi-grupo ´e designado por Zm,h,k,l.

Teorema 12.3.4 Sejam h, m, k, l ∈ N tais que m > 1, mdc(h, m) = mdc(k, m) = 1 e A = Zm,h,k,l.

1. Os c´odigos Cn, n > 3, sobre Zm,h,k,l detectam todas as transposi¸c˜oes adjacentes se e

s´o se mdc(h − 1, m) = mdc(h − k, m) = mdc(k + 1, m) = 1.

2. Os c´odigos Cn, n > 3, sobre Zm,h,k,l detectam todas as transposi¸c˜oes intercaladas se

e s´o se mdc(h2− 1, m) = mdc(h2− k, m) = mdc(hk + 1, m) = 1.

Demonstra¸c˜ao: (1) Temos de analisar quando ´e que as condi¸c˜oes 1(i-iii) do Teorema 12.3.2 se verificam. Sejam a, b, c, d ∈ Zm tais que (a ∗ b) ∗ c = (a ∗ c) ∗ b. Isto ´e equivalente

a

h2a + hkb + hl + kc + l ≡ h2a + hkc + hl + kb + l (mod m) (12.39)

(22)

o que por sua vez ´e equivalente a

k(h − 1)(b − c) ≡ 0 (mod m). (12.40) Como k e m s˜ao primos entre si, podemos concluir que m divide (h − 1)(b − c). Logo, A satisfaz a condi¸c˜ao (i) se e s´o se h − 1 e m s˜ao primos entre si.

Analogamente se b ∗ c = c ∗ b, ent˜ao hb + kc + l ≡ hc + kb + l (mod m) que ´e equivalente a (h − k)(b − c) ≡ 0 (mod m) e A satisfaz (ii) se e s´o se h − k e m s˜ao primos entre si.

Suponhamos que a = d ∗ b e b = d ∗ a, ent˜ao a ≡ hd + kb + l (mod m) e b ≡ hd + ka + l (mod m). Logo, a − b ≡ k(b − a) (mod m) e m divide (k + 1)(b − a). Se k + 1 e m s˜ao primos entre si, ent˜ao a = b, isto ´e, A satisfaz (iii). Se k + 1 e m n˜ao s˜ao primos entre si, ent˜ao o m´aximo divisior comum r = mdc(k + 1, m) ´e differente de 1 e existe s < m tal que m = rs. Seja a = 0 e b = s. Como mdc(h, m) = 1, existe u ∈ A tal que uh ≡ 1 (mod m). Seja d = u(s − l) (mod m). Ent˜ao d ∗ b = hu(s − l) + ks + l ≡ (k + 1)s ≡ 0 = a (mod m) e d ∗ a = hu(s − l) + 0 + l ≡ s = b (mod m). Como s 6= 0 em A, teremos a 6= b, isto ´e, A n˜ao satisfaz a condi¸c˜ao (iii).

(2) De forma analoga ao ponto (1) mostra-se que ((a ∗ b) ∗ c) ∗ d = ((a ∗ d) ∗ c) ∗ b ´e equivalente a k(h2− 1)(b − d) ≡ 0 (mod m) para a, b, c, d ∈ A. Logo, a condi¸c˜ao 2(i) do

Teorema 12.3.2 verifica-se se e s´o se h2− 1 e m s˜ao primos entre si. Por sua vez, mostra-se

que (b ∗ c) ∗ d = (d ∗ c) ∗ b ´e equivalente a (h2− k)(b − d) ≡ 0 (mod m). Logo, a condi¸c˜ao 2(ii) do Teorema 12.3.2 verifica-se se e s´o se h2− k e m s˜ao primos entre si.

Se d = (a ∗ b) ∗ c e b = (a ∗ d) ∗ c, ent˜ao (hk − 1)(b − d) ≡ 0 (mod m). Logo, se hk − 1 e m s˜ao primos entre si, ent˜ao A satisfaz condi¸c˜ao 2(iii) do Teorema 12.3.2. Caso contr´ario, suponhamos que A satisfaz a condi¸c˜ao 2(iii) do Teorema 12.3.2 tal que m = s · mdc(hk − 1, m) com 0 < s < m. Sejam a, b ∈ A elementos arbitr´arios e defina-se d = b + s (mod m). Ent˜ao, existe c ∈ A tal que b = (a ∗ d) ∗ c. Logo:

d = b + s = (a ∗ d) ∗ c + s = h2a + hkd + hl + kc + l + s

= h2a + hkb + hl + kc + l + (hk + 1)s = ((a ∗ b) ∗ c). Como s 6= 0, os elementos b e d s˜ao diferentes, logo A n˜ao satisfaz a condi¸c˜ao 2(iii) do Teorema 12.3.2. 

Note-se que o produto do quasi-grupo Q3 ´e definido por a · b ≡ b − a = 2a + 1b + 0

(mod 3). Portanto, Q3 = Z3,2,1,0, com h = 2, k = 1 e l = 0. Como h−1 = h−k = 1 e k+1 =

2 e 3 s˜ao primos entre si, todo o c´odigo Cn sobre Q3 (com n > 3) detecta transposi¸c˜oes

adjacentes, mas n˜ao detecta transposi¸c˜oes intercaladas, j´a que h2−1 = h2−k = hk +1 = 3.

Na verdade, por exemplo, as palavras (0, 0, 1, 1) e (0, 1, 1, 0), pertencem ambas ao c´odigo C4.

´

E f´acil observar que, para um quasi-grupo Zm,h,k,l verificar 12.3.4(1), m ter´a de ser

´ımpar, pois se m for par um dos n´umeros h ou h − 1 seria par. Analogamente, se um quasi-grupo Zm,h,k,l satisfaz 12.3.4(2), ent˜ao nenhum dos elementos h, h − 1 e h + 1 pode

ser divis´ıvel por um factor de m e portanto m tem de ser ´ımpar e n˜ao divis´ıvel por 3. O exerc´ıcio que se segue ´e deixado como desafio.

(23)

Exerc´ıcio 12.3.5 Seja m um n´umero ´ımpar e A = Zm,m+1 2 ,1,0.

• Verifique que os c´odigos Cn, com n > 3, sobre A detectam todas as transposi¸c˜oes

adjacentes.

• Mostre que os c´odigos Cn detectam todas as transposi¸c˜oes intercaladas se e s´o se m

n˜ao ´e um m´ultiplo de 3.

Agradecimento: Os autores gostariam de agradecer aos editores, a Ant´onio Machi-avelo e a Paula Carvalho Lomp pela revis˜ao cuidada.

Appendix: Algoritmo do Teorema de Paige em Python

A demonstra¸c˜ao do Teorema de Paige 12.2.9 sugeriu o seguinte algoritmo (em Python) que permite, a partir de uma permuta¸c˜ao T , encontrar uma permuta¸c˜ao S tal que | ˜S(A)| > | ˜T (A)|, se | ˜T (A)| < n − 1. As permuta¸c˜oes s˜ao consideradas listas em Python. O programa sup˜oe que a lista de listas M cont´em a tabela de multiplica¸c˜ao do grupo Abeliano A, isto ´

e, M [a][b] ´e interpretado por a ∗ b, e que a lista Inv faz corresponder cada elemento ao seu elemento inverso, isto ´e, Inv[x] ´e o elemento inverso de x.

def Paige(T):

n=len(M); # n´umero dos elementos do grupo

A=range(0,n); # os elementos do grupo

B=[]; # conjunto de geradores

CB=[]; # o complemento de B

Imagem=[]; # a imagem de T

for x in A:

if M[x][Inv[T[x]]] not in Imagem: Imagem.append(M[x][Inv[T[x]]]); B.append(x);

else:

CB.append(x);

if len(CB)<2: return False;

u=CB[0]; # dois elementos do complemento

v=CB[1];

a=B[Imagem.index(M[u][Inv[T[u]]])]; # encontrar a em B com aT(a)^-1=uT(u)^-1 Lista=[a];

if(M[a][Inv[T[v]]] not in Imagem): # aT(V)^-1 pertence `a imagem de T?

h=T[a]; # n~ao? ent~ao j´a encontramos uma nova

T[a]=T[v]; # permuta¸c~ao

T[v]=h; return T; else:

b=B[Imagem.index(M[a][Inv[T[v]]])]; # constru¸c~ao da uma lista a_1,... a_k Lista.append(b);

(24)

while(M[b][Inv[T[a]]] in Imagem): # at´e a_kT[a_k-1]^-1 n~ao pertencer h=B[Imagem.index(M[b][Inv[T[a]]])]; # `a imagem. a=b; b=h; Lista.append(b); h=T[v]; T[v]=T[Lista[len(Lista)-1]]; # S(v)=T(a_k) for i in range(len(Lista)-1): T[Lista[-i-1]]=T[Lista[-i-2]]; # S(a_i+1)=T(a_i) T[Lista[0]]=h; # S(a_k)=T(v) return T;

(25)

Bibliografia

[1] J. A. Gallian, M. D. Mullin, Groups with anti-symmetric mappings., Arch. Math. 65 (1995), 273-280

[2] S. Heiss, Antisymmetric mappings for finite solvable groups., Arch. Math. 69 (1997), 445-454

[3] L. Paige, A note on finite abelian groups, Bull. Am. Math. Soc. 53 (1947), 590-593 [4] J. Picado, A ´algebra dos sistemas de identifica¸c˜ao da aritm´etica modular aos grupos

diedrais., Boletim da Sociedade Portuguesa de Matem´atica 44 (2001), 39-73

[5] R. - H. Schulz, A note on check character systems using Latin squares., Discrete Math. 97, No.1-3 (1991), 371-375

[6] R. -H. Schulz, On check digit systems using anti-symmetric mappings. em I.Alth¨ofer (ed.) et al., Numbers, information and complexity., Dordrecht: Kluwer Academic Publishers (2000), 295-310

[7] J. Verhoeff, Error detecting decimal codes., Mathematical Centre Tracts 29, Mathe-matisch Centrum Amsterdam (1969)

(26)

´

Indice

Abeliano, 5 alfabeto, 4 anti-sim´etrica, 9 ASCII, 1, 8

Bilhete de Identidade (BI), 2, 6, 8 c´odigo de bloco, 4

c´odigo de verifica¸c˜ao de d´ıgitos, 5 cart˜ao de cr´edito, 3, 7 conjectura de Gallian-Mullin, 17 conjectura de Hall-Paige, 17 EAN-13, 2, 6, 7 erros singulares, 4 Euro, 17 grupo, 5

grupo das permuta¸c˜oes, 5 grupo diedral Dn, 14

Hans Peter Luhn, 3 ISBN, 1, 6

Leonhard Euler, 18 Lowell Paige, 11 Marco alem˜ao, 16

ordem de um elemento, 5 ordem de um grupo, 5 permuta¸c˜ao, 4 permuta¸c˜ao completa, 17 quadrados latinos, 18 quasi-grupo, 18 Ralph-Hardo Schulz, 19 Stefan Heiss, 17 Sudoku, 18

transposi¸c˜oes adjacentes, 4, 8 transposi¸c˜oes intercaladas, 4

Referências

Documentos relacionados

As análises serão aplicadas em chapas de aços de alta resistência (22MnB5) de 1 mm de espessura e não esperados são a realização de um mapeamento do processo

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

Os principais objectivos definidos foram a observação e realização dos procedimentos nas diferentes vertentes de atividade do cirurgião, aplicação correta da terminologia cirúrgica,

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

3259 21 Animação e dinamização de actividades lúdico-expressivas - expressão musical 50 3260 22 Animação e dinamização de actividades lúdico-expressivas -

A Lei nº 2/2007 de 15 de janeiro, na alínea c) do Artigo 10º e Artigo 15º consagram que constitui receita do Município o produto da cobrança das taxas

São por demais conhecidas as dificuldades de se incorporar a Amazônia à dinâmica de desenvolvimento nacional, ora por culpa do modelo estabelecido, ora pela falta de tecnologia ou

5 “A Teoria Pura do Direito é uma teoria do Direito positivo – do Direito positivo em geral, não de uma ordem jurídica especial” (KELSEN, Teoria pura do direito, p..