UFRJ-1992) O Agente Id Ota inventou o seguinte código secreto para a transmissão de datas de certos fatos importantes: o, código transforma uma data d-m-a, onde d é o dia, m é o mes e a representa os dois últimos algarismos do ano, em uma nova tripla de números d'-m-a', de acordo com a regra:
[[- 2, 3, 1], [- 1, 2, 1], [- 2, 3, 1]] * [[d], [m], [a]] = [[d'], [m'], [a']]
O código revelou-se um desastre. De fato, várias datas originais distintas ( i, m, a ) correspondem, as datas 1/1/1997 e 2/2/1996,correspondem ao mesmo código 98-98-98, pois:
[[- 2, 3, 1], [- 1, 2, 1], [- 2, 3, 1]] * [[1], [1], [97]] = [[- 2, 3, 1], [- 1, 2, 1], [- 2, 3, 1]] * [[2], [2], [96]] = [[98], [98], [98]]
Id Ota pensou em alterar o coeficiente central da matriz, a igual a 2, para um outro valor k. Determine se possível, os valores de k que fazem o código funcionar bem.
Lista de comentários
Verified answer
O código que o Agente Id Ota inventou usa uma matriz de codificação para transformar uma data d-m-a em uma nova tripla de números d’-m-a’. A matriz de codificação é:
−2−1−2323111
O coeficiente central da matriz é 2, e o Agente Id Ota pensou em alterá-lo para um outro valor k. Para que o código funcione bem, ele precisa garantir que:
A matriz de codificação seja inversível, ou seja, que exista uma matriz inversa que possa decodificar a tripla de números de volta para a data original.
A matriz de codificação não gere colisões, ou seja, que não haja duas datas diferentes que produzam a mesma tripla de números.
Para que a matriz de codificação seja inversível, ela precisa ter um determinante diferente de zero. O determinante de uma matriz 3x3 é dado pela fórmula:
det(A)=a11a22a33+a12a23a31+a13a21a32−a31a22a13−a32a23a11−a33a21a12
Onde aij é o elemento da i-ésima linha e j-ésima coluna da matriz A. Aplicando essa fórmula à matriz de codificação, obtemos:
det(A)=(−2)k(1)+3(1)(−2)+1(−1)(3)−(−2)(2)(1)−3(1)(−2)−1(−1)k
Simplificando, temos:
det(A)=−2k−6−3+4+6−k
Ou seja:det(A)=−3k+1
Para que o determinante seja diferente de zero, basta que k não seja igual a 1/3. Portanto, qualquer outro valor de k torna a matriz de codificação inversível.
Para que a matriz de codificação não gere colisões, ela precisa ser injetora, ou seja, que não haja duas triplas de números diferentes que produzam a mesma data. Isso é equivalente a dizer que o sistema linear formado pela matriz de codificação e a tripla de números tenha uma única solução para a data. Usando o método de Cramer, podemos afirmar que isso acontece se e somente se o determinante da matriz de codificação for diferente de zero, o que já foi garantido pelo passo anterior. Portanto, qualquer valor de k diferente de 1/3 evita colisões.
Em conclusão, os valores de k que fazem o código funcionar bem são todos os valores reais exceto 1/3. Espero ter ajudado!