Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2014, 20:52   #1
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию открытое хеширование

Данные о каждом читателе должны содержать:
№ читательского билета – строка формата «ANNNN-YY», где A – буква, обозначающая права доступа читателя (А – только абонемент, Ч – только читальный зал, В – читальный зал и абонемент), NNNN – порядковый номер регистрации (цифры), YY – последние две цифры номера года регистрации;
ФИО – строка;
Год рождения – целое;
Адрес – строка;
Место работы/учебы – строка.

Данные о читателях должны быть организованны в виде хеш-таблицы, первичным ключом которой является «№ читательского билета» Метод хеширования определяется вариантом задания.

Вопрос - я правильно представил ниже метод открытого хеширования?
Т.е. я представляю эти данные с помощью двумерного массива,где первый столбец это номер читательского билета
Из номера читательского билета Первичным ключом является только кусок - NNNN
Я ввожу к примеру 0003 и мой цикл пробегает по первому столбцу и останавливается на той строчке у которой NNNN = 0003 ,когда он ее найдет,он возвращает индекс этой строчки и по этому индексу я вывожу строчку с данными полного номера читательского билета и далее выводятся строчки столбцов ФИО ;Год рождения;Адрес ;Место работы/учебы по данному найденному индексу выше.

Последний раз редактировалось alekopoko; 10.01.2014 в 21:23.
alekopoko вне форума Ответить с цитированием
Старый 10.01.2014, 21:57   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Цитата:
я правильно представил ниже метод открытого хеширования?
Т.е. я представляю эти данные с помощью двумерного массива,где первый столбец это номер читательского билета
Из номера читательского билета Первичным ключом является только кусок - NNNN
Я ввожу к примеру 0003 и мой цикл пробегает по первому столбцу и останавливается на той строчке у которой NNNN = 0003 ,когда он ее найдет,он возвращает индекс этой строчки и по этому индексу я вывожу строчку с данными полного номера читательского билета и далее выводятся строчки столбцов ФИО ;Год рождения;Адрес ;Место работы/учебы по данному найденному индексу выше.
А где здесь собственно само хеширование? Я не понял.
У Вас имеется ключ - № читательского билета.
Открытое хеширование - это есть массив списков.
Почему оно называется открытое? Потому что сами элементы хранятся не внутри таблицы, а вне ее.
Также у Вас есть хеш функция, которая по заданному ключу вычисляет адрес в нашей хеш таблице.
Коллизии как таковые здесь не разрешаются, так как у нас метод цепочек переполнения (что специфично для открытого хеширование) элемент просто добавляется в соответствующий список.

Последний раз редактировалось Базиля; 10.01.2014 в 22:08.
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 22:29   #3
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

НО тогда получается что мы отдираем целый столбец от таблицы данных т.к. по методу открытого хеширования ключ должен быть вне таблицы
Или значения ключа не должны совпадать со значением № читательского билета?
alekopoko вне форума Ответить с цитированием
Старый 10.01.2014, 22:39   #4
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Цитата:
НО тогда получается что мы отдираем целый столбец от таблицы данных т.к. по методу открытого хеширования ключ должен быть вне таблицы
Откуда отдираем?
У нас изначально ничего нет. Отдирать нечего.
Откуда Вы взяли таблицу с данными? Что это за таблица?
Да, элементы хранятся вне самой таблицы.
Цитата:
Или значения ключа не должны совпадать со значением № читательского билета?
?
Номер читательского это и есть ключ.
Задача хеш функции - получить по ключу адрес в таблице.
Базиля вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хеширование Vladislaw.onisckif Общие вопросы C/C++ 0 25.11.2013 22:12
Хеширование: Necare Помощь студентам 5 21.03.2011 19:46
Открытое письмо россиянской «элите» mihali4 Свободное общение 37 23.11.2010 08:30
активировать уже открытое приложение (одно из окон) по части названия и его корректно закрыть Yuri_K Microsoft Office Excel 1 25.11.2009 23:47
активировать уже открытое приложение (одно из окон) по части названия и его корректно закрыть Yuri_K JavaScript, Ajax 0 25.11.2009 22:26