No contexto da área de Algoritmos e Estruturas de Dados, o h...

Próximas questões
Com base no mesmo assunto
Q4071622 Algoritmos e Estrutura de Dados
No contexto da área de Algoritmos e Estruturas de Dados, o hashing consiste em um método de pesquisa, no qual os registros armazenados em uma tabela são diretamente endereçados a partir de uma transformação aritmética sobre a chave de pesquisa (Ziviani, 2012). Uma possível função de transformação é K mod M, em que K é um inteiro correspondente à chave de pesquisa e M é o tamanho da tabela.
Considere que a i-ésima letra do alfabeto é representada pelo número i (A = 1, B = 2, C = 3, …) e que o valor da chave K é obtido pela soma dos valores das letras da palavra.

Dada a função de transformação h(K) = K mod 7, qual alternativa apresenta CORRETAMENTE os endereços gerados para as chaves CASA e BOLA, respectivamente?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: D

Fundamento decisivo: O ponto decisivo era seguir o enunciado exatamente na ordem pedida: somar os valores das letras de cada palavra e usar o resultado na função h(K)=K mod 7, obtendo os endereços 3 e 2.

Tema central: Hashing por módulo
Análise das alternativas
A
Errada
Está errada porque atribui CASA=2 e BOLA=3, mas a soma correta das letras leva a CASA=24 e BOLA=30; aplicando mod 7, os resultados são 3 e 2, não 2 e 3.
B
Errada
Está errada porque indica 4 e 3, valores incompatíveis com os cálculos corretos. CASA soma 24 e gera 24 mod 7 = 3; BOLA soma 30 e gera 30 mod 7 = 2.
C
Errada
Está errada porque acerta CASA=3, mas erra BOLA. Para BOLA, a soma correta é 2+15+12+1=30, e 30 mod 7 = 2, não 4.
D
Certa
Está correta porque, pelos cálculos pedidos no enunciado, CASA resulta em 3 e BOLA resulta em 2; por isso é a única alternativa compatível com o gabarito.
Pegadinha da questão
A confusão real estava em errar a soma das letras — especialmente S=19, O=15 e L=12 — ou inverter a ordem dos resultados entre CASA e BOLA.
Dica para questões semelhantes
  • Em questões de hashing desse tipo, separe em duas etapas: calcular K e só depois aplicar a função módulo.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo