LINUX.ORG.RU

История изменений

Исправление FeelUs, (текущая версия) :

А что такое «безопасность для не-криптографических применений»?
А (a<<1)^b - безопасно для криптографических применений?
По моему здесь речь идет только о применении в хеш таблицах.

Скажите мне по сути:

  1. правильно ли я описал требования к хешу для применения в хеш-таблицах:
  1. равномерная распределённость результата (при равномерной распределенности a и b)
  2. hash(a,b)!=hasb(b,a) если a!=b
  1. подходит ли каждый из перечисленных методов под эти требования

Вот только что нагуглил ещё один метод:

  • (a*p)^b, где p=17 или p=31 или другое простое число
    пойду добавлю в свой ответ…

Ради одного только hash_combine подключать boost - не вариант. А если на каком-нибудь контесте задачку решаешь, то там вообще можно использовать только стандартную библиотеку.

Исходная версия FeelUs, :

А что такое «безопасность для не-криптографических применений»?
А (a<<1)^b - безопасно для криптографических применений?
По моему здесь речь идет только о применении в хеш таблицах.

Скажите мне по сути:

  1. правильно ли я описал требования к хешу для применения в хеш-таблицах:
  1. равномерная распределённость результата (при равномерной распределенности a и b)
  2. hash(a,b)!=hasb(b,a) если a!=b
  1. подходит ли каждый из перечисленных методов под эти требования

Вот только что нагуглил ещё один метод:

  • (a*p)^b, где p=17 или p=31 или другое простое число пойду добавлю в свой ответ…

Ради одного только hash_combine подключать boost - не вариант. А если на каком-нибудь контесте задачку решаешь, то там вообще можно использовать только стандартную библиотеку.