Назад Зміст Вперед

Задачі на обчислення елементів послідовності через попередні елементи

Ми обчислювали елементи послідовності за формулою таким чином: підставляли номер елемента послідовності у формулу та отримували значення елемента.

Але таким чином можна обчислити елементи не для всіх послідовностей. Якщо у формулі для обчислення елемента ai присутній один чи декілька попередніх елементів (ai-1 або ai-2), або формула для обчислення елементу послідовності містить піднесення до степеня чи факторіал, або словесно вказується, як обчислюється „наступний” елемент через „попередній”, то цей алгоритм не підходить.

Наприклад, необхідно обчислити 5 чисел: a1=3, ai=ai-1+5, i=2,3,…5. Нам необхідно обчислити елементи послідовності через один попередній (бо у формулі справа від знака „=” тільки ai-1). Підставляємо значення i=2,3,…5 у формулу. Отримаємо:

Правило обчислення елементів послідовності через один попередній

  1. Для значень елементів послідовності досить одної змінної (a). Порядкові номери елементів в програмі не використовуються.
  2. Перед циклом потрібно присвоїти перше значення змінній (a). Воно буде „попереднім” (для приклада a:=3).
  3. У циклі for i:=2 to n+1 do (цикл від 2, бо одне число вже обчислили):
    • виводиться на екран „попередній” елемент (a);
    • за формулою обчислюється „наступний” елемент, і його значення присвоюється тій же самій змінній (для приклада a:=a+5);
    • останній виток циклу для i=n+1, тому що на кожному витку ми виводимо на екран „попередній” елемент та обчислюємо „наступний”. Тобто при i=2 виводимо на екран a1, а обчислюємо a2, при i=3 виводимо на екран a2, а обчислюємо a3 і т.д. Тобто, останній елемент an виведеться на екран при i=n+1.

Приклад 1

Дано натуральне число n . Надрукувати n чисел ai=5i , i=1, 2, …, n.

Дано: кількість чисел

Знайти: Надрукувати самі числа

У самій формулі для обчислення елементів послідовності не видно, що кожний елемент обчислюється через попередній. Але це можна легко з’ясувати:

Тобто, a1=5, ai=ai-1*5, i=2,3,…,n .

Результат роботи програми

ВвідВивідПояснення
4 5 25 125 625 Вводимо 4 - кількість чисел. Отримаємо чотири числа, що є степенями 5.

Змінні:

Вхідні:

Вихідні:

Проміжні:

Алгоритм

  1. Спочатку вводимо n – кількість чисел, що потрібно обчислити та вивести на екран.
  2. До початку циклу присвоїмо початкове значення змінній a. Воно повинно співпадати з першим числом послідовності a:=5.
  3. У циклі for i:=2 to n+1 do у операторних дужках будемо виконувати такі дії:

Програма

 var i,n:integer;a:longint;
begin
 read(n); a:=5;
 for i:=2 to n+1 do
 Begin
  write(a,' '); a:=a*5;
 end;
end.

Приклад 2

Дано натуральне число n. Надрукувати n чисел для i=1, 2, …n.

Дано: кількість чисел

Знайти: Надрукувати самі числа

У самій формулі для обчислення елементів послідовності не видно, що кожний елемент обчислюється через попередній. Але це можна легко з’ясувати:

Для обчислення i-го „наступного” числа до попереднього числа додають дріб, у чисельнику якого 1, а у знаменнику порядковий номер „наступного” числа. Тобто, b1=1; , i=2,3,…n.

Результат роботи програми

ВвідВивідПояснення
4 1.00 1.50 1.83 2.08 Вводимо 4 - кількість чисел. Отримаємо чотири дійсних числа що є елементами послідовності

Змінні:

Вхідні:

Вихідні:

Проміжні:

Алгоритм

  1. Спочатку вводимо n – кількість чисел, що потрібно обчислити та вивести на екран.
  2. До початку циклу присвоїмо початкове значення змінній b. Воно повинно співпадати з першим числом послідовності b:=1.
  3. У циклі for i:=2 to n+1 do у операторних дужках будемо виконувати такі дії:

Програма

 var i,n:integer; b:real;
begin
 read(n); b:=1;
 for i:=2 to n+1 do
 begin
   write(b:1:2,' ');b:=b+1/i;
 end;
end.

Приклад 3

Дано натуральне число n. Надрукувати n чисел, що створюють послідовність Фібоначчі:

Дано: кількість чисел

Знайти: Надрукувати самі числа

У цій формулі для обчислення елементів послідовності видно, що кожний елемент, починаючи з третього, обчислюється через два попередніх (fi-1 та fi-2 ).

Правило обчислення елементів послідовності

через два попередніх

  1. Для значень елементів послідовності потрібно три змінних (a1, a2, a3).
  2. Перед циклом потрібно:
    • присвоїти початкові значення першим двом змінним (a1, a2). Вони повинні співпадати з двома першими елементами послідовності.
    • Вивести на екран значення першої змінної (a1).
  3. У циклі for i:=2 to n do (цикл від 2, бо одне число вже вивели на екран):
    • Вивести на екран значення другої змінної (a2).
    • За формулою обчислити значення третьої змінної a3, через a1 та a2.
    • Перед переходом на наступний виток циклу переприсвоюємо значення двох „попередніх” елементів: a1:=a2, a2:=a3.
    • Останній виток циклу для i=n, тому що на кожному витку ми виводимо на екран і-й елемент послідовності та обчислюємо і+1-й елемент. Тобто при i=2 виводимо на екран друге число та обчислюємо третє, при i=3 виводимо на екран третє число, та обчислюємо четверте і т.д. Тобто, останній елемент виведеться на екран при i=n.

Результат роботи програми

ВвідВивідПояснення
6 1 1 2 3 5 8 Вводимо 6 - кількість чисел. Отримаємо шість елементів послідовності Фібоначчи

Змінні:

Вхідні:

Вихідні:

Проміжні:

Алгоритм

  1. Спочатку вводимо n – кількість чисел, що потрібно обчислити та вивести на екран.
  2. До початку циклу присвоїмо початкові значення двом попереднім елементам: змінним f1 та f2. Вони співпадають з двома першими числами послідовності та дорівнюють 1.
  3. Оператор write(f1,' ') виводить на екран "перше попереднє" число.
  4. У циклі for i:=2 to n do у операторних дужках будемо виконувати такі дії:

Програма

 var i,n:integer; f1,f2,f3:integer;
begin
 read(n);
 f1:=1; f2:=1; write(f1,' ');
 for i:=2 to n do
 begin
    write(f2,' ');
    f3:=f1+f2;
    f1:=f2; f2:=f3;
 end;
end.

Варіанти задач

  1. Надрукуйте у рядок 10 чисел, якщо перше число 1, а кожне наступне число є добутком попереднього та 0.5.
  2. Нехай перший член послідовності чисел a=1, а кожний наступний елемент дорівнює сумі попереднього та числа 1.5. Складіть програму обчислення перших 10 елементів цій послідовності.
  3. Нехай перший член послідовності чисел a=10, а кожний наступний елемент дорівнює добутку попереднього та числа 2.5. Складіть програму обчислення перших 10 елементів цій послідовності.
  4. Дано натуральні числа N та K. Надрукувати N чисел .
  5. Дано натуральне n. Надрукувати n чисел a1=1, ai=2*ai-1+1 , де i=2,3...n
  6. Складіть програму обчислення перших 10 членів послідовності, якщо i-ий член послідовності має вигляд :xi=2i+3, де i=1,2,...10.
  7. Дано натуральне n. Надрукувати n чисел ai=i! де i=1, 2, ...n. Пояснення: i факторіал -  це добуток чисел від 1 до i:    i!=1*2*3*...*i.
  8. Дано натуральне n. Надрукувати n чисел . Пояснення: i факторіал - це добуток чисел від 1 до i: i!=1*2*3*...*i.
  9. Послідовність чисел a1, a2, a3, ... утворюється за законом: . Дано натуральне число n. Надрукуйте послідовність чисел a1, a2, a3,..., an .
  10. Послідовність чисел a1, a2, a3, ... утворюється за законом: . Дано натуральне число n. Надрукуйте послідовність чисел a1, a2, a3,..., an .
  11. Послідовність чисел a1, a2, a3, ... утворюється за законом: . Дано натуральне число n. Надрукуйте послідовність чисел a1, a2, a3,..., an .
  12. Послідовність чисел a1, a2, a3, ... утворюється за законом: . Дано натуральне число n. Надрукуйте послідовність чисел a1, a2, a3,..., an .
  13. Дано натуральне n. Надрукувати N чисел x1=0.3; x2=-0.3; xi=i+sin(xi-2),  де i=3, 4, ..., n.
  14. Дано натуральне n. Надрукуйте послідовність чисел b1, b2, ... bn, де при i=1, 2, ...n значення bi=2i+3i+1. Наприклад: b1=2+32; b2=22+33; b3=23+34; ...
  15. Дано натуральне n. Надрукувати n чисел . Пояснення: i факторіал - це добуток чисел від 1 до i: i!=1*2*3*...*i.
  16. Послідовність u1, u2, u3, ... утворюється за законом u1=0; u2=1; ui=ui-2+ui-1+fi-2 (i=3,4, ...), де fi-2 - відповідний член послідовності Фібоначчі. Дано натуральне число n. Надрукуйте послідовність u1, u2, u3,..., un .

Назад Зміст Вперед