Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Севастополь – 2012. Цель работы: экспериментально исследовать теоретическую оценку трудоемкости алгоритма поиска минимума






Цель работы: экспериментально исследовать теоретическую оценку трудоемкости алгоритма поиска минимума, ознакомиться с принципами использования ГСЧ.

Вариант задания №18

Вариант Наибольшее случайное число в последовательности Количество элементов в массиве случайных чисел
    250, 300, 400

Ход выполнения работы

В ходе выполнения работы были разработаны 2 процедуры: harmonic – для расчета гармонического числа, create_array – для генерации матрицы псевдослучайных чисел и записи ее в файл. Реализация процедуры create_array представлена на рис. 1, блок-схема – на рис.2.

void create_array(int Nmax,int *vector) { // Cоздание массива из Nmax псевдослучайных целых чисел величиной от 0 до 550 // массив записывается в файл Example_TA2.TXT, на экран выводим максимальное // целое   int i;//переменная цикла FILE *stream;//файл данных //Nmax соответствует размерности массива stream = fopen("Example_TA2.TXT", "w+");//открываем файл для записи std::cout << std::endl <<"Maximal integer " << RAND_MAX << std::endl;//вывод максимально возможного числа printf("\n%d%s\n", Nmax, " random numbers from 0 to 550");//вывод справочного сообщения   for(i=0; i<Nmax; i++)//цикл вывода в файл и на экран элементов массива { vector[i]= rand() % 550;//генерация очередного случайного числа в диапазоне от 0 до 550 if ((i+1)%20!=0)//вывод по 20 чисел в ряд { printf("%d ", vector[i]); fprintf(stream,"%d ", vector[i]); } else { printf("%d\n", vector[i]); fprintf(stream,"%d\n", vector[i]); } } fclose(stream); }
Рис.1. Реализация процедуры create_array

 

Рис. 2. Блок-схема процедуры create_array

 

Реализация процедуры harmonic представлена на рис. 3, блок-схема – на рис.4.

double harmonic(int n) { //Функция вычисления гармонического числа double sum = 0;   for (int i=1; i<=n; i++) sum+=1/(double)i;   return sum; }
Рис. 3. Реализация процедуры harmonic

 

Рис. 4. Блок-схема процедуры harmonic

 

На рис.5 представлен листинг основной части программы.

#include <conio.h> #include <math.h> #include <stdio.h> #include <stdlib.h> #include <iostream> #include <time.h> #include "Lab2_TA_func.h"   using namespace std;   int vector[10]; // Cоздание массива из 10 псевдослучайных целых чисел величиной от 0 до 100 // массив записывается в файл Example_TA2.TXT, на экран выводим максимальное // целое   int main(int argc, char* argv[]) {   int i, N, //кол-во чисел min, // значение минимума cnt; //счетчик операций переприсваивания   double result;   cout << "Input amount of numbers: "; cin >> N; result = Lab2_TA::harmonic(N); //расчет гармонического числа // harmonic(N) – функция подсчета n-го гармонического числа cout << "Harmonic(" << N << ")=" << result;   Lab2_TA::create_array(N,vector); //генерация массива псевдослучайных чисел min = vector[0];//берем в качестве первого минимального элемента первый элемент массива cnt = 1;   for (i=0;i<N;i++) { if(vector[i]<min) { min = vector[i]; cnt++; } }   printf("\n%s%d%s%d\n", "Minimal ", min, " Num oper ", cnt);//Вывод минимального числа и кол-ва операций переприсваивания   _getch(); return 0; }
Рис. 5. Листинг основной части программы

 

Для нашего варианта заданий были получены следующие результаты рис. 6-8.

Рис.6. Результаты расчета для массива из 250 элементов

 

Рис.7. Результаты расчета для массива из 300 элементов

 

Рис.8. Результаты расчета для массива из 400 элементов

 

Выводы.

В результате выполнения лабораторной работы:

· была исследована теоретическая оценка трудоемкости алгоритма поиска минимума;

· были получены навыки работы с генератором псевдослучайных чисел;

· были создана программа для исследования трудоемкости алгоритма и блок-схемы основных функций;

· было установлено, что практическая оценка трудоемкости алгоритма значительно меньше теоретической. Это связано с тем, что использовались массивы небольшого размера. Если увеличивать кол-во элементов массива до бесконечности, то разница между теоретической и практической оценкой будет стремится к 0.







Дата добавления: 2015-10-12; просмотров: 519. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Способы тактических действий при проведении специальных операций Специальные операции проводятся с применением следующих основных тактических способов действий: охрана...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия