Matemática Dissertativa

Uma certa função hash, h(x), aplicada à chave, r(x), coloca registros com as chaves: 62, 79, 81, 12, 54, 97, 34, numa tabela hash. As colisões são tratadas por uma função re-hash, r(x), que recebe como argumento o resultado da aplicação da função hash. Os valores-chave são introduzidos na ordem indicada acima, para produzir a seguinte tabela: [imagem da tabela]. Quais são as funções h(x) e r(x), respectivamente?

Uma certa função hash, h(x), aplicada à chave, r(x), coloca registros com as chaves: 62, 79, 81, 12, 54, 97, 34, numa tabela hash. As colisões são tratadas por uma função re-hash, r(x), que recebe como argumento o resultado da aplicação da função hash. Os valores-chave são introduzidos na ordem indicada acima, para produzir a seguinte tabela: [imagem da tabela]. Quais são as funções h(x) e r(x), respectivamente?

Resolução completa

Explicação passo a passo

Resumo da resposta

Análise da Questão de Estrutura de Dados (Hash Table)

Esta questão aborda o funcionamento de Tabelas Hash, especificamente a função de distribuição de chaves (h(x)) e o tratamento de colisões via re-hash (r(x)).

1. Identificação do Tamanho da Tabela (T)

Observando os índices (array index) apresentados na tabela, eles variam de 0 a 19.
T = 20
Isso indica que o operador módulo principal utilizado na função hash provavelmente será 20.

2. Determinação da Função Hash Primária h(x)

Vamos testar a função clássica de hash modular: h(x) = x \pmod{20}.
Verificando cada chave inserida na ordem dada (62, 79, 81, 12, 54, 97, 34):

ChaveCálculo (x \pmod{20})Índice Final na TabelaStatus
62$62 \div 20 = 3$ resto 22✅ Coincide
79$79 \div 20 = 3$ resto 1919✅ Coincide
81$81 \div 20 = 4$ resto 11✅ Coincide
12$12 \div 20 = 0$ resto 1212✅ Coincide
54$54 \div 20 = 2$ resto 1414✅ Coincide
97$97 \div 20 = 4$ resto 1717✅ Coincide
34$34 \div 20 = 1$ resto 148⚠️ Colisão

Conclusão parcial: A função hash é definitivamente $h(x) = x \pmod{20}$. Todas as chaves, exceto a última, caíram exatamente no índice calculado pelo módulo 20.

3. Determinação da Função de Re-hash r(x)

A chave 34 gerou uma colisão:

  • Índice inicial: $14$ (já ocupado pela chave 54).
  • Índice final: $8$.

Precisamos descobrir qual função r(x) transformou a tentativa no índice 14 para o índice 8.
Existem duas lógicas comuns para o deslocamento:

  1. Adição: (14 + \text{passo}) \pmod{20} = 8 \Rightarrow \text{passo} = 14.
  2. Subtração: (14 - \text{passo}) \pmod{20} = 8 \Rightarrow \text{passo} = 6.

Em problemas didáticos de concursos, uma função de re-hash comum é do tipo r(x) = P - (x \pmod P), onde P é um número menor que T.
Se considerarmos P = 10:
r(34) = 10 - (34 \pmod{10}) = 10 - 4 = 6

Se o algoritmo utilizar o passo de subtração (comum em algumas implementações de Double Hashing ou Probing Quadrático invertido), temos:
14 - 6 = 8
Isso explica perfeitamente a posição da chave 34.

Conclusão

Com base na análise dos dados:

  1. A função hash é $h(x) = x \pmod{20}$.
  2. A função de re-hash que gera o deslocamento correto para a chave 34 (de 14 para 8) é aquela que fornece um passo de 6. Uma fórmula candidata comum é $r(x) = 10 - (x \pmod{10})$ (assumindo subtração) ou $r(x) = (x \pmod{10}) + 2$.

Resumo da Resposta:
A função hash é $h(x) = x \pmod{20}$ e a função de re-hash responsável pelo deslocamento da chave 34 é $r(x) = 10 - (x \pmod{10})$ (considerando operação de subtração no índice).

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Matemática

Ver mais Matemática resolvidas

Tem outra questão de Matemática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.