Слайд 2Рекуррентная последовательность
Числовая последовательность {xk} называется рекуррентной ранга p, если
где a0, a1,
![Рекуррентная последовательность Числовая последовательность {xk} называется рекуррентной ранга p, если где a0,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-1.jpg)
…, ap – 1 – константы, а f – функция
Слайд 3Пример рекуррентной последовательности
![Пример рекуррентной последовательности](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-2.jpg)
Слайд 4Примеры тестов
Тесты по методу черного ящика:
минимально возможное n=0
на 1 больше минимально возможного,
![Примеры тестов Тесты по методу черного ящика: минимально возможное n=0 на 1](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-3.jpg)
n=1
другое значение n, например, n=6
Тесты по методу белого ящика:
такое n, чтобы цикл ни разу не выполнялся, n=0
такое n, чтобы цикл выполнился 1 раз, n=1
несколько большее значение n, например, n=6
Т.е. все тесты: n=0, n=1, n=6
На выходе, соответственно: F=1, F=1, F=720
Слайд 5Трудоемкость алгоритма
Элементарный шаг – это действие, время выполнения которого не зависит от
![Трудоемкость алгоритма Элементарный шаг – это действие, время выполнения которого не зависит](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-4.jpg)
числа входных переменных и их значений, например:
один или фиксированное число выполняемых подряд операторов присваивания
проверка условия в условном операторе или цикле
вызов функции и возврат из функции
Слайд 6Трудоемкость алгоритма
Трудоемкость – это функция зависимости количества элементарных действий от входного параметра
![Трудоемкость алгоритма Трудоемкость – это функция зависимости количества элементарных действий от входного](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-5.jpg)
n при n→∞.
Например, для цикла, который выполняется n раз, трудоемкость T(n) = A·n + B. Здесь коэффициент B – это число шагов до первой проверки условия, а A – число элементарных шагов при однократном выполнении цикла.
Коэффициенты зависят от компьютера и качества трансляции, поэтому на практике важно не точное значение, а порядок роста T(n) при n →∞. В нашем случае T(n) растет линейно относительно n, и это обозначается в виде: T(n) = O(n)
Слайд 7Числа Фибоначчи
Числа Фибоначчи задаются рекуррентной последовательностью ранга 2:
int n, f0, f1, f2,
![Числа Фибоначчи Числа Фибоначчи задаются рекуррентной последовательностью ранга 2: int n, f0,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-6.jpg)
k; cin >> n;
f0 = 0; f1 = 1;
for (k = 2; k <= n; k++)
{
f2 = f0 + f1; f0 = f1; f1 = f2;
}
Слайд 9Приближенное вычисление предела последовательности
Последовательность может иметь предел при n → ∞. Например, некоторый конечный
![Приближенное вычисление предела последовательности Последовательность может иметь предел при n → ∞.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-8.jpg)
предел может иметь последовательность сумм
где слагаемые fk стремятся к нулю при k → ∞.
Слайд 10Приближенное вычисление предела последовательности
double eps, a, f, S;
int k;
cin >>
![Приближенное вычисление предела последовательности double eps, a, f, S; int k; cin](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-9.jpg)
a >> eps;
k = 1; S = f = a;
while (abs(f) >= eps)
{
k++;
f = p(k, f);
S += f;
}
Слайд 11Приближенное значение функции sin x
Рекуррентное соотношение для элементов суммы:
![Приближенное значение функции sin x Рекуррентное соотношение для элементов суммы:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-10.jpg)
Слайд 12Алгоритм вычисления sin x
double eps, x, f, S;
int k; cin >>
![Алгоритм вычисления sin x double eps, x, f, S; int k; cin](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-11.jpg)
x >> eps;
k = 1; S = f = x;
while (abs(f) >= eps)
{
k++;
f = -f*x*x/(2*k-1)/(2*k-2);
S += f;
}
Количество k выполнений цикла:
если |x| ≤ 1, ε ≤ 1/2, то k ≤ log2 1/ε
Слайд 13Рекуррентная последовательность Герона
Можно доказать, что при a ≥ 0.
![Рекуррентная последовательность Герона Можно доказать, что при a ≥ 0.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1060682/slide-12.jpg)