Elf Hashを使用して、Hash Mapの特別に調整されたバージョンを書きます。衝突を生み出したい

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

  •  29-10-2019
  •  | 
  •  

質問

アルファベット順の文字のみで構成される2つの文字列の例を挙げてもらえますか?

コードをテストするにはこれらが必要です。しかし、作成するのは簡単ではないようです。驚いたことに、インターネット上のさまざまなハッシュ機能の多くの例コードがありますが、衝突した弦の例はありません。

必要な場合に備えて、以下はエルフハッシュです。

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);
}

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top