Лабораторные работы_2 / Спецификации / Лабораторная работа 5
.docЛабораторная работа № 5.
«Хэширование»
Захаров Антон
группа А–13–08
-
Условие задачи.
Задано множество М мощности p, элементами которого являются натуральные числа 0, 1, 2, ..., p-1. Разместить множество М в памяти с адресами V1, V2 ,..., Vn , (p > n) путем хэширования (рассеивания), помещая каждый элемент m M (0 < m < p-1) по адресу Vi, который вычисляется с помощью следующей хэш-функции
i = m - (m div n) n + 1
-
Входные данные.
Состав: цел P – число элементов в множестве М;
цел N – число ячеек памяти.
Входная форма:
input
Введите длину множества М >> <P> Введите длину массива V >> <N> |
-
Выходные данные.
Состав: цел – заполненный массив памяти;
вещ MemV – текущий процент заполненной памяти;
цел K – число элементов, размещённых до 1-й, 2-й … коллизии;
цел S – число проб до разрешения 1-й, 2-й … коллизии.
Выходная форма:
output
-
Метод.
1. Элементы множества генерируются с помощью датчика псевдослучайных чисел.
2. Элементы размещаются, пока память не будет заполнена.
3. Меняя исходные параметры P и N, определить:
- если коллизии не находят разрешения, то
А. Число размещенных элементов до 1-й, 2-й, и т.д. коллизии.
Б. Процент заполнения памяти до 1-й, 2-й, и т.д. коллизии.
В. Число (или процент) возникших коллизий при полном заполнении памяти.
- если коллизии находят разрешение, то А., Б., В.,
Г. Число проб (до первого свободного места) для разрешения 1-й, 2-й, и т.д. коллизии.
-
Аномалии.
-
№
Условие
Реакция
1
0<P<=20
В силу выбранных ограничений, число элементов множества не должно быть отрицательной или превышать 20.
2
0<N<=10
В силу выбранных ограничений, число ячеек памяти не должна быть отрицательной или превышать 10.