![]() |
|
Модераторы: bsa |
![]()
|
|
| werywery |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.10.2009 Репутация: нет Всего: нет |
Здравствуйте!
помогите пожалуйста разобраться с программой....
Проблема в общем такая: когда таблица выводится на экран то почему то, во первых нумерация (i), начинается не с нуля а с единицы..... и каждый -1 элемент(не понятно как он получается ваще) в связи с if(tab[i]!=-1){ не выводится на экран..... то есть получается нумерация вот такая: 1 [значения] 3 .......... 5 .......... 7 .......... и после четырех элементов пронумерованных неверно идут элементы пронумерованные правильно..... и еще коэффициент заполнения считается неверным...... он не может быть равным 0..... и быть больше 1... Помогите кто чем может...... Буду благодарен за любые подсказки.. Зарание спасибо!!! Это сообщение отредактировал(а) werywery - 4.12.2009, 14:52 |
|||
|
||||
| Albor |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Это шедевр
Так было не проще?
|
||||
|
|||||
| werywery |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.10.2009 Репутация: нет Всего: нет |
проще..... но вопрос то другой.... сам сгенерированный массив то выводится нормально, а вот таблица косячно..... Как исправить? подскажите пожалста |
||||||
|
|||||||
| Albor |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Значит tab[0] всегда остаётся равным -1, то есть не заполняется. Алгоритм заполнения таблицы довольно мудрёный и сходу тяжело что либо сказать, но по условию при печати таблицы видно, что те элементы, которые ты не видишь равны -1, то есть при заполнении таблицы эти ячейки пропускаются. Добавлено через 5 минут и 9 секунд Вот ещё
и m, и t константы. Зачем каждый раз вычислять константное значение? |
||||
|
|||||
| werywery |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.10.2009 Репутация: нет Всего: нет |
а как просмотреть ячейку, пуста ли она, а потом , если пуста записать туда элемент!!!..(это же, как я думал, метод устранения коллизий квадратичными пробами( если ячейка занята - перейти к следующей и т.д.)) то есть предпологается что ячейка с элементом -1 - была коллизией и из нее мы перешли в следущую... то есть все верно???? но, элементы нумеруются неверно, как сделать правильную нумерацию.... Да, и с константами че то я перемудрил.... спасибо за подсказку... |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Ты можешь объяснить как заполняется таблица? Я вижу заполнение массива случайными числами, потом это по какому-то алгоритму загоняется в таблицу. Для меня эти действия не понятны. Твоя проблема в том, что алгоритм заполнения таблицы срабатывает неправильно( по всей видимости). Больше подсказать что-либо трудно, так как исходная задача неизвестна и что ты "закручиваешь" в своих циклах известно тебе одному. Добавлено через 11 минут и 40 секунд Таблица у тебя больше количества элементов в g-раз. При заполнении таблицы ты перебираешь все элементы от i до m и "разбрасываешь" их по таблице. Как ни крути, а в таблицу больше чем m значений не попадёт, остальные ячейки будут незаполненые и на печать не выведутся. |
|||
|
||||
| werywery |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.10.2009 Репутация: нет Всего: нет |
а как мне пронумеровать элементы которые вывелись, тем индексом,которому они соответствуют...... или может представите свой алгоритм заполнения и печать таблицы, а то я уже совсем запутался..... буду очень вам благодарен..... |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
||||
|
||||
| werywery |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.10.2009 Репутация: нет Всего: нет |
Задание было такое!!!! Построить хеш-таблицу содержащую последовательность из m=45 элементов размерностью n=4. Элементы генерируются с помощью датчика случайных чисел. Хеш-функция f(k)=(k/11)%t; метод разрешения коллизий квадратичные пробы! может это поможет!!! |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Начни с этого. Чтобы решить задачу нужно сначала понять её.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |