Re: long.GetHashCode()
От: Sinix  
Дата: 21.03.14 11:53
Оценка:
Здравствуйте, -rsdn-, Вы писали:

R>есть один тест, с использованием словаря new Dictionary<long, long>(comparer)

R>в общем ключи подставляются в словарь такие что их хеш вызывает много коллизий, помогите придумать другую функцию хеширования
1. Проблема точно в коллизиях хэша, а не в самом алгоритме/выбранном контейнере?
2. Если не подходит простой xor — можно взять классический
        public static int CombineHashCodes(int h1, int h2)
        {
            return (h1 << 5) + h1 ^ h2;
        }

(используется в System.Tuple и в ряде других типов) или посмотреть на типовые наборы данных и подобрать для них любую другую функцию.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.