Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Рехэширование - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не получается со строками (исправить код) http://www.cyberforum.ru/cpp-beginners/thread686357.html
Добрый вечер! У меня возникла такая проблема: есть задача, я ее разбил на подпрограммы, подпрограммы написал, а вот теперь составить одну программу не получается! Помогите мне, буду благодарен! ...
C++ Переделать программы под функцию, void #include "stdafx.h" #include <stdio.h> #include <clocale> #include <conio.h> #include <iostream> #include <fstream> #include <string> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread686351.html
Одномерные массивы C++
Помогите решить задачи С++ плиз очень нужно для лабы 1.Найти сумму элементов массива, являющихся полными квадратами. 2. Найти сумму чисел, расположенных между максимальным и минимальным...
Перегрузка оператора ввода C++
почему не работает следующий код? class obj { unsigned int book_id; string title; unsigned price; public: obj(string i = "None", unsigned int b = 0, unsigned int p = 0): title(i),...
C++ Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру http://www.cyberforum.ru/cpp-beginners/thread686330.html
Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру.. И ещё, помогите пожалуйста её доработать,надо удалять учреждение с указанным весом из...
C++ Написать программу кот. удаляет повторы из array Нужно написать программу кот. удаляет повторы из array. Например: Only three more lessons to go after this one! Должно быть: Only thremoresgafi! Задача звучит так: Написать функцию -... подробнее

Показать сообщение отдельно
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
11.11.2012, 22:14  [ТС]
Объясните пожалуйста как тут разобраться. Я нашел в книжке Молчанова как делается рехэширование при помощи произведения.
Существуют и другие методы организации функций рехэширования ht(A),
основанные на квадратичных вычислениях или, например, на вычислении
произведения по формуле: hi(A) = (h(A)N*i) mod N'm, где N'm — ближайшее простое число, меньшее Nm. В целом рехэширование позволяет добиться неплохих результатов для
Nm — максимальное значение из области значений хэш-функции h.
Допустим у меня есть массив. Я определяю хэш функцию так: считаю из скольки сиволов состоит каждый элемент массива mod размерность.
1) Например у меня есть нулевой элемент массива. его длина 3 символа: 3 mod 16 = 3.
2) вычисляю индекс рехэшированием произведением : 3*16*0 mod 2 (максимальное значение из обл. определения =3, 2 -ближайшее к нему) = 0
Но если начать вычислять индексы следующих элементов массива, то все они равны 0!. Помогите разобраться?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru