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

Уменьшить число коллизий хеш-таблицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Замена кода символа на его значение http://www.cyberforum.ru/cpp-beginners/thread975883.html
Здравствуйте, есть строка string url = "«Открой меня!™»"; как можно заменить коды символов на их значения?
C++ Не могу разобраться с алгоритмом Проанализируйте блок-схему алгоритма на рис.5. Определите, какое сообщение необходимо выводить вместо ??? На входе алгоритма: вводится последовательность чисел, 0 - конец последовательности, x0 - текущий член последовательности, x1 - следующий член последовательности. http://www.cyberforum.ru/cpp-beginners/thread975876.html
C++ По поводу расширения окна
Здравствуйте, очень хочу узнать. Как в играх делают окно игры на весь экран? И возможно ли это в простых формах. Допустим при запуске формы, форма полностью занимала размер твоего экрана. Не так чтоб ее можно было растянуть, а полностью. Чтоб ни пуска не было видно ничего.
Заполнить массив случайными символами C++
Нужно заполнить массив случайными символами(буквами и числами). Как это можно сделать с помощью rand?
C++ Дана целочисленная матрица A (N,M), в которой имеются ровно два одинаковых элемента. Найти индексы этих элементов http://www.cyberforum.ru/cpp-beginners/thread975855.html
Дана целочисленная матрица A (N,M), в которой имеются ровно два одинаковых элемента. Найти индексы этих элементов. Написал такую хрень, но она мне не нравится, слишком все как то запутано, попроще нельзя? #include <iostream> #include <cstdlib> #include <clocale> #include <ctime> using namespace std;
C++ Выход из программы по нажатию Esc подскажите как сделать чтобы по нажатию ESC выводился результат.затупил чутка int main(){ setlocale(LC_ALL, "RUS"); toll_Both car_1; char button; cout << "y - заплатил, n - не заплатил, esc - вывести результат." << endl; while(1){ cout << "выберете нужный Вам вариант: y/n/esc." << endl; cin >> button; switch(button){ подробнее

Показать сообщение отдельно
no SOPA
0 / 0 / 1
Регистрация: 20.02.2012
Сообщений: 41
13.10.2013, 03:28  [ТС]
monolit, я бы с радостью, но по заданию нужна именно такая хеш-функция

Добавлено через 1 час 52 минуты
Написал хеш-функцию тем же методом, но по другой формуле
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int Get_index(char* str)
{
    int result = 0;
    
    int x = 0;
    while (str[x] != '\0')
    {
        result += (int) str[x];   // Переводим из char в int
        x++;
    } 
    
    //result = (21 * (result))>>(16-5);   // h = (A * K) >> (w - m)
    float A =((sqrt(5) - 1)/2);    //золотое сечение по Кнуту
    result = M * fmod((A*result),1);
 
    //return (int) keyword;
    return (int) result;
}
Коллизий стало 4. Но лучше, чтобы не больше 3. Буду дальше колдовать.

Добавлено через 4 минуты
Изменил размер таблицы с 32 до 64 и коллизий стало 2.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru