- •Цель работы.
- •Изучение и программирование стандартного алгоритма «поиска моды».
- •Задание.
- •Задан вектор исходных данных S(N) отсортированный по возрастанию значений его элементов, и алгоритм поиска моды, наиболее часто встречающегося (повторяющегося)
- •значения S(im) элементов в векторе.
- •1. Реализовать в Matlab алгоритм поиска моды для вектора исходных данных S(8) в Программе 1;
- •2. Вставить комментарии к операторам Программы 1;
- •4. Составить Таблицу 1 из трех столбиков для отдельных листингов трех версий вектора S(8), включающих: значение моды S(im), индекс начала последовательности значений моды im и количество значений mc в последовательности моды;
- •5. Составить в Matlab Программу 2, добавив в Программу 1 формирование исходного вектора S(N). Для этого использовать функции rand и fix: s=fix(50*rand ([1 N)) так же, как в программе к лабораторной работе 4.1 «Быстрая сортировка»;
- •6. Вставить в Программу 2 ранее разработанный модуль Quick Sort из лабораторной работе 4.1 «Быстрая сортировка» для сортировки исходного вектора S(N);
- •7. Вставить Программу 2 стандартные функции tic, toc для оценки времени поиска моды;
- •8. Определить зависимость времени поиска моды (наибольшее из 20 прогонов программы) для векторов S(10^4), S(10^5), S(10^6), S(10^7);
- •3. Составим в Matlab Программу 2, добавив в Программу 1 формирование исходного вектора S(N):
- •Модифицированная программа:
- •Листинг результатов:
- •Elapsed time is 0.095406 seconds.
- •Индекс начала последовательности значений моды:
- •Количество значений mc в последовательности моды:
- •Elapsed time is 0.164252 seconds.
- •Elapsed time is 0.659111 seconds.
- •Elapsed time is 3.962321 seconds.
- •4. Составим таблицы. Вычислим коэффициенты KN=Nj/Ni, Kt=tj/ti:
Листинг результатов:
1) N=104
Elapsed time is 0.095406 seconds.
Мода : 17
Индекс начала последовательности значений моды:
6244
Количество значений mc в последовательности моды:
3
2) N=105
Elapsed time is 0.164252 seconds.
Мода : 29
Индекс начала последовательности значений моды:
2627
Количество значений mc в последовательности моды:
3
3) N=106
Elapsed time is 0.659111 seconds.
Мода : 1
Индекс начала последовательности значений моды:
130257
Количество значений mc в последовательности моды:
4
4) N=107
Elapsed time is 3.962321 seconds.
Мода : 40
Индекс начала последовательности значений моды:
8215668
Количество значений mc в последовательности моды:
5
6
4. Составим таблицы. Вычислим коэффициенты KN=Nj/Ni, Kt=tj/ti:
i |
N |
t, с |
|
|
|
1 |
104 |
0,095406 |
2 |
105 |
0,164252 |
3 |
106 |
0.659111 |
4 |
107 |
3.962321 |
i-j |
|
|
1-2 |
10 |
1,7 |
|
|
|
1-3 |
100 |
6,9 |
|
|
|
1-4 |
1000 |
41,53 |
|
|
|
Вывод.
В ходе данной лабораторной работы был изучен алгоритм поиска моды. Анализируя коэффициенты, полученные в ходе данной лабораторной работы, становится понятно, что с увеличением значения вектора время выполнения также увеличивается, значит, зависимость KN и Kt линейная.
7
