Questão nº 18
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 18)
A analista Ana precisou implementar rapidamente uma função hash denominada AHash. A AHash deve determinar um valor numérico entre 0 e 5 para uma chave de entrada. Ana optou por implementar em AHash o método de hashing denominado Método da Divisão. Para compatibilizar possíveis chaves alfanuméricas com o Método da Divisão, Ana implementou um dicionário que atribui a cada caracter um valor numérico. Internamente, a AHash utiliza como chave o produto dos números correspondentes aos caracteres da chave original.
Sabendo que os caracteres C, V e M correspondem, respectivamente, aos números 67, 86 e 77, a AHash retornará para a chave "CVM":
- A0;
- B1;
- C2;
- D3;
- E4. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Uma função hash transforma uma chave de entrada (como um texto) em um valor numérico de tamanho fixo, usado para indexar dados. O Método da Divisão calcula o valor hash como o resto da divisão da chave numérica pelo tamanho da tabela (ou módulo), ou seja, .
Cálculo:
- Converter a chave alfanumérica em numérica: A chave "CVM" é convertida usando os valores fornecidos: C=67, V=86, M=77.
- Calcular a chave interna (produto): A AHash usa o produto desses números como chave interna:
Chave Interna .
Para simplificar o cálculo do módulo, podemos aplicar a propriedade . - Determinar o módulo (M): A função AHash deve retornar um valor entre 0 e 5. Isso significa que há 6 valores possíveis (0, 1, 2, 3, 4, 5). Portanto, o módulo é 6.
- Calcular o hash usando o Método da Divisão:
- (pois )
- (pois )
- (pois )
- Agora, multiplicamos os restos e aplicamos o módulo novamente:
- (pois )
O valor retornado pela AHash para a chave "CVM" é 4.
(A) Incorreta: O cálculo do hash não resulta em 0.
(B) Incorreta: O cálculo do hash não resulta em 1.
(C) Incorreta: O cálculo do hash não resulta em 2.
(D) Incorreta: O cálculo do hash não resulta em 3.
(E) Correta: O valor hash é 4, obtido pela aplicação do Método da Divisão (). A armadilha mais tentadora seria usar 5 como módulo em vez de 6, pois o intervalo é de 0 a 5. No entanto, um intervalo de 0 a significa que o módulo é .
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.