Изчисляване повтарящи се последователности
Периодично последователност. Изследването на смятане концепция на рекурсивни последователност. Това понятие се въвежда по следния начин: ако знаем к числа a1. ак. Тези числа са първите номера на цифровата поредица. Следните елементи на последователността се изчисляват както следва:
Има F- функция на к аргументи. тип с формула
Той нарече рецидив формула. Стойността на к се нарича дълбочина рекурсия.
С други думи, можем да кажем, че периодичното последователност - безкрайна поредица от числа, всяко от които, с изключение на началния к, изразена по отношение на предишните.
Примери са повтарящи се последователности аритметика (1) и геометрична (2) прогресия:
Формулата за повтаряне за споменатия аритметична прогресия:
Формулата за повтаряне на тази геометрична прогресия:
дълбочина рекурсия и в двата случая е равен на една (тази зависимост се нарича още една стъпка рекурсия). Като цяло, рекурсивен последователност описана от набор от начални стойности и формула рецидив. Всичко това може да се комбинира в единична формула разклонения. За аритметична прогресия:
За експоненциално:
Следната номериране е известно в математиката, наречен номера Фибоначи:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55.
Тъй като всеки елемент от третата брой е сумата от предишните две, че е. Е. повтарящ последователност с дълбочина, равна на 2 (два етапа рекурсия). Ние го опиша под формата на разклоняване:
Въвеждането на понятия от повторение последователности дава възможност за един нов поглед към някои от тях вече са известни, за да ни проблема. Например, факториела на число п! Това може да се разглежда като стойността на п-тия елемент на следната поредица от числа:
Рекурсивно описание на такава последователност е както следва:
Програмиране изчисляване повтарящи се последователности. С повтарящи се последователности, свързани проблеми от този вид:
1) за да се изчисли предварително определен елемент (п-ти) последователност;
2) лечение на математически дефинирани част последователност (например, за да се изчисли сумата или продукт от първите N условия);
3) изчисляване на броя на елементите на предварително определена последователност интервал отговарят на определени свойства;
4) определяне на броя на първия елемент, който удовлетворява дадено условие;
5) изчислява и съхранява предварително определен брой елементи последователности.
Този списък не е изчерпателен задача, но най-често срещаните видове се отнася. През първите четири задачи едновременно, не е необходимо да се съхранява в паметта на множество поредица от числа. В този случай, нейните елементи могат да бъдат произведени последователно в една променлива, един след друг.
Пример 1. Изчислете п-тия елемент на аритметична прогресия (1).
За I: = 2 до N Do
Формулата за повторение AI = AI - 1 + 2 се премества в оператор А: = A + 2.
Пример 2. Сума първите N елементи на геометрична прогресия (2) (не като се използва формулата за сумата от първите членове на п прогресия).
За К: = л до 20 Do WriteLn (Fibon (К))
Трябва да се отбележи, че използването на рекурсивни функции забавя сметката. В допълнение, може да се натъкнете на проблема с недостига на дължината на комин, който се помни "маршрут" рекурсивни повиквания.
Повтарящите се последователности често се използват за решаване на всякакви проблеми, еволюционни, т.е. проблеми, в които се проследят някои процес, който се развива с течение на времето. Да разгледаме следния проблем.
Пример 6. По време на гладно теглото на пациента в продължение на 30 дни намалява от 96 до 70 кг. Установено е, че загубите на ежедневните тегло са пропорционални на телесно тегло. Изчислете какво е равно на теглото на пациента от к дни след началото на пост за к = 1, 2, 29.
Означаваме теглото на пациента в I-ия ден след пи (I = 0, 1, 2, 30). От условията на проблема е известно, че P0 = 96 кг, p30 = 70 кг.
Нека K е фактор пропорционалност по отношение на тяхната тежест в рамките на един ден. след това
Ние се получи последователност, описана по следния рекурсивен формула:
Въпреки това, ние не знаем К. Неговият коефициент може да се намери с помощта на състоянието P30 = 70.
За да направите това ние ще направим обратно търсене:
Допълнителна програмиране става тривиално.
Var I: Byte; P, Q: Real;