С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Lilim
7 / 7 / 0
Регистрация: 24.12.2011
Сообщений: 53
#1

Хэш код для нормализованного вектора - C++

09.07.2016, 20:19. Просмотров 241. Ответов 1
Метки нет (Все метки)

Мне нужно генерировать 64-разрядный хэш для трехмерных нормализованных векторов (double). Хэши должны быть равны если сгенерированы из одного или равных (поэлементно) векторов.

У кого какие мысли? Может есть стандартный алгоритм?

Да и ещё - после генерации 64-разрядного хэш-кода я увязываю его с 64-разрядным "ключевым сидом" методом XOR и далее сливаю в 32-битное значение применяя XOR к 32-битным частям 64-битного хэш-кода.

Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
inline UINT32 seed_vertex_generation(const dVector3 vec)
{
    union {
        UINT32 u32[2];
        UINT64 u64;
    } cap;
 
    cap.u64 = hash64(vec) ^ key_seed;
 
    return cap.u32[0] ^ cap.u32[1];
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2016, 20:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Хэш код для нормализованного вектора (C++):

Ошибка с итераторами для целочисленного вектора и вектора структуры - C++
Пытаюсь разобраться с векторами. Для динамической работы с памятью вещь, вроде, замечательная и удобная. Только необходимо использовать...

Описать класс "хэш-таблица", используя unordered_set и заданную хэш-функцию - C++
Здравствуйте. Есть класс объектов и ключ сравнения: #pragma once #include <iostream> #include <vector> #include <list> #include...

Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора - C++
Здравствуйте. Буду очень благодарен,если кто нибудь напишет два кода к этим задачам. Спасибо за внимание. Задача 1. Составить...

Квадратичная фунция для хэш-таблицы - C++
Добрый день! Подскажите, что тут c1, c2, h'(key)? Задание прикрепил картинкой.. А ниже функция, которая дана в задании.. int...

Определение хэш-функции для контейнера - C++
На просторах stackoverflow нашел следующую реализацию для std::аrrаy: namespace std { template<typename T, size_t N> struct...

Преобразовать хэш-функцию для работы с wchar_t - C++
Надо переделать данную функцию для работы не с const char*, а с const wchar_t*. unsigned int HashLy(const char*str) { unsigned int...

1
Nick Alte
Эксперт С++
1642 / 1014 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
09.07.2016, 23:07 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Lilim Посмотреть сообщение
Может есть стандартный алгоритм?
Да, есть std::hash с типом результата size_t. При компиляции под 64 бита он будет иметь требуемый размер. На 32-битной системе можно смешивать хеши при помощи boost::hash_combine или самостоятельно, но не при помощи XOR, нужна операция, дающая разные результаты при перестановке операндов.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2016, 23:07
Привет! Вот еще темы с ответами:

Написать функцию для класса, возращающую данный из вектора обьектов класса по итератору вектора - C++
День=добрый как написать функцию для класса возращающую данный из вектора обьектов класса по итератору вектора?? стока запроса: ...

Может ли быть одинаковая хэш-сумма для разных наборов данных? - C++
Всем привет! Есть небольшая серия вопросов по хэшам, к ому не сложно, дайте свои комменты по вопросам. Просьба не засирать тему флудом :) ...

Переписать код без Вектора - C++
Задание: Для произвольного текста(Взятого из файла), содержащего не более 10 строк, в каждой строке не более 80 символов, переставить...

Найти сколько элементов первого вектора совпадают с элементами второго вектора - C++
#include <iostream> #include <time.h> #include <vector> #include <set> using namespace std; void main() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.