0 / 0 / 0
Регистрация: 03.03.2017
Сообщений: 21
1

Задача из книги Сэджвика по C++

21.01.2020, 23:24. Показов 722. Ответов 1

Есть программа следующего вида:

C++
1
2
3
4
5
6
7
8
9
10
11
12
int i, j, k, N = 1000, count = 0;
 
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            for (int k = 0; k < N; k++)
            {
                count++;
            }
        }
    }
К ней приводится задача под номером 2.3:

Найти выражение вида aN3 + bN2 + cN + d, которое точно описывает время выполнения программы. Сравнить время, задаваемое этим выражением, с реальным при N = 10, 100, 1000 и т.д.

Если я правильно понял суть, то предлагается рассчитать коэффициенты a,b,c,d. Допустим, мы можем узнать d, если N = 0 и, таким образом, мы найдем постоянную величину времени, которая всегда актуальна для нашей программы. Но как быть дальше? Или я неверно понял суть упражнения?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2020, 23:24
Ответы с готовыми решениями:

Ответы к упражнениям из книги Сэджвика "Фундаментальные алгоритмы на С++" части 1-4
Привет! Читаю данную книгу, в конце каждой главы имеются упражнения, но нет ответов на них. На...

Сравнить ФИО из книги 1 и книги 2, и если совпадают, то в столбец А книги 1, подставить данные из столбца В книги 2
Добрый день! Подскажите, как сделать-есть 2 книги. Нужно сравнить фамилии из книги 1 и книги 2 и...

Задача книги
В книге сто страниц. На странице может находиться от 35 до 45 строк (случайное число). В одной...

Описать структуру Bibliotec, содержащую следующие поля: автор книги, инвентарный номер книги, название книги
Описать структуру BIBLIOTEC содержащий следующие поля: автор книги , инвентарный номер книги ,...

1
7 / 5 / 2
Регистрация: 21.01.2020
Сообщений: 29
22.01.2020, 14:18 2
...

Добавлено через 22 минуты
такс

у тебя count++ выполняетя n*n*n раз, поэтому я предполагаю что коэффициент "a" относится к count++ . то есть вычисляешь время работу n*n*n count = aN3. Находишь a = aN3/N3;

у тебя одинарный цикл for (int k = 0; k < N; k++) выполняетя n*n раз, поэтому я предполагаю что коэффициент "b" относится к этому одинарному циклу . то есть вычисляешь время работу n*n пустых циклов = bN2. Находишь b = aN2/N2;

у тебя двойной цикл for (int i = 0; i < N; i++) выполняетя n раз, поэтому я предполагаю что коэффициент "с" относится к этому двойному циклу . то есть вычисляешь время работу n пустых циклов = cN. Находишь c = cN/N;

у тебя тройной цикл for (int j = 0; j < N; j++) выполняетя 1 раз, поэтому я предполагаю что коэффициент "d" относится к этому тройному циклу . то есть вычисляешь время работу 1 пустого цикла = d.

Добавлено через 1 минуту
тем самым получаешь требуемое выражение

Добавлено через 10 минут
можно упрастить выражение так как у пустых циклов время одинаковое( b = c = d), то есть aN3 + bN2 + cN + d = aN3 + dN2+ dn + d = aN3 + d( N2 + n + 1)

Добавлено через 1 минуту
то есть надо вычислить лишь a и d
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2020, 14:18
Помогаю со студенческими работами здесь

Задача из книги по алгоритмам.
я вложил в рисунке само задание. &quot;в лоб&quot; я задание решил и оно совпадает с подсказкой/решением в...

Задача из книги Страуструпа
В общем, не могу понять логику, по которой необходимо выполнить небольшое задание. Само задание:...

Задача из книги Страуструпа
Нужна ваша помощь или хотя бы подсказка, в одном из упражнений в книге Страуструпа &quot;...

Задача из книги Дейтлов
Написать программу, использующую цикл и управляющую последовательность табуляции \t для печати...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru