Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
решить
Предмет: Информатика
Раздел: Алгоритмизация и программирование (анализ вложенных циклов)
Рассмотрим задачу №1:
Дан вложенный цикл:
for i = 1 to n - 1
for j = 1 to n - i + 2
t = t + 1;
Найти:
Внешний цикл:
[i = 1 \text{ to } n - 1]
Внутренний цикл:
[j = 1 \text{ to } n - i + 2]
Для каждого значения [i] внутренний цикл выполняется [n - i + 2] раз.
Чтобы найти общее количество итераций тела внутреннего цикла, нужно просуммировать это выражение по всем [i] от [1] до [n - 1]:
\sum_{i=1}^{n-1} (n - i + 2)
Упростим выражение под суммой:
n - i + 2 = (n + 2) - i
Тогда:
\sum_{i=1}^{n-1} ((n + 2) - i) = \sum_{i=1}^{n-1} (n + 2) - \sum_{i=1}^{n-1} i
Вычислим каждую сумму:
Тогда итоговая формула:
(n - 1)(n + 2) - \frac{(n - 1)n}{2}
Вынесем общий множитель (n - 1):
(n - 1)\left[(n + 2) - \frac{n}{2}\right]
Приведем к общему знаменателю:
(n - 1)\left[\frac{2(n + 2) - n}{2}\right] = (n - 1)\left[\frac{2n + 4 - n}{2}\right] = (n - 1)\left[\frac{n + 4}{2}\right]
T(n) = \frac{(n - 1)(n + 4)}{2}
T(10) = \frac{(10 - 1)(10 + 4)}{2} = \frac{9 \cdot 14}{2} = \frac{126}{2} = 63
Если нужно, могу также подробно разобрать задачу №2.