Sto usando Elf Hash per scrivere una versione appositamente ottimizzata di Hash Map. Volendo produrre collisioni

StackOverflow https://stackoverflow.com/questions/5920276

  •  29-10-2019
  •  | 
  •  

Domanda

Qualcuno può dare un esempio di 2 stringhe, costituite solo da caratteri alfabetici, che produrranno lo stesso valore di hash con Elfhash?

Ho bisogno di questi per testare i miei codici. Ma non sembra facile da produrre. E con mia sorpresa ci sono molti codici di esempio di varie funzioni di hash su Internet, ma nessuno di essi fornisce esempi di stringhe sconfinate.

Di seguito è riportato l'Hash Elfo, nel caso ne hai bisogno.

unsigned int ELFHash(const std::string& str)
{
   unsigned int hash = 0;
   unsigned int x    = 0;

   for(std::size_t i = 0; i < str.length(); i++)
   {
      hash = (hash << 4) + str[i];
      if((x = hash & 0xF0000000L) != 0)
      {
         hash ^= (x >> 24);
         hash &= ~x;
      }
   }

   return (hash & 0x7FFFFFFF);
}

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top