Очно - Заочная Школа интеллектуального развития

 

   
  Главное меню

  Главная

------------------------------------------

  Положение об ОЗШ

------------------------------------------

  Олимпиада

------------------------------------------

  Библиотека

------------------------------------------

  Справочники

------------------------------------------

  Тестирование on-line

------------------------------------------

  Зачетная книжка

------------------------------------------

  Вход для

  преподавателей

------------------------------------------

 

    

 
Добро пожаловать в пользовательский раздел сайта!
 
Библиотека : Информатика : Задачи для самостоятельного решения. Тема 10 - Основы программирования. Реализация рекурсивных алгоритмов.
 

10.8.1. Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F(1) = 1

F(n) = F(n–1) * n, при n >1

Чему равно значение функции F(5)? В ответе запишите только натуральное число.

Решение:

***************

Последовательно находим:

F(2) = F(1) * 2 = 2,

F(3) = F(2) * 3 = 6,

F(4) = F(3) * 4 = 24,

F(5) = F(4) * 5 = 120.

 

Приведем решение данной задачи на различных языках программирования.

 

на языке BASIC на языке Python на языке Pascal

Cls

Var:

  Let F1 = 1

Begin:

   For n = 2 To 5

      Let f = F1 * n

      Let F1 = f

   Next n

  Print f

End

def F(n):
    if n == 1:
        return 1
    if n > 1:
        return F(n-1) * n
print(F(5))
 

Заметим, что данная функция является не чем иным как вычислением факториала, поэтому вычисление значения при n>100 становится невозможным с использованием данного программного кода и необходимо искать другие пути решения задачи.

***************

Ответ: 120.
 

10.8.2. Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F(1) = 3

F(n) = F(n–1) * (n–1), при n >1

Чему равно значение функции F(6)?

В ответе запишите только натуральное число.

Решение:

***************

Последовательно находим:

F(2) = F(1) * 1 = 3,

F(3) = F(2) * 2 = 6,

F(4) = F(3) * 3 = 18,

F(5) = F(4) * 4 = 72,

F(6) = F(5) * 5 = 360.

 

Приведем решение данной задачи на различных языках программирования.

 

на языке BASIC на языке Python на языке Pascal

Cls

Var:

  Let F1 = 3

Begin:

   For n = 2 To 6

      Let f = F1 * (n-1)

      Let F1 = f

   Next n

  Print f

End

def F(n):
    if n == 1:
        return 3
    if n > 1:
        return F(n-1) * (n - 1)
print(F(6))
 
 

***************

Ответ: 360.
 

10.8.3.

 

Решение:

***************

***************

Ответ: 22.
 

10.8.4.

 

Решение:

***************

***************

Ответ: 15.
 

10.8.5.

 

Решение:

***************

 

***************

Ответ: 8.
 

10.8.6.

 

Решение:

***************

***************

Ответ: 25.
 

10.8.7.

 

Решение:

***************

 

***************

Ответ: 12.
 

10.8.8.

 

Решение:

***************

 

***************

Ответ: 6.
 

10.8.9.

 

Решение:

***************

 

***************

Ответ: 28.
 

10.8.10.

 

Решение:

***************

***************

Ответ: 7.
 

10.8.11.

 

Решение:

***************

 

***************

Ответ: 8.
 
 

10.8.21. Алгоритм вычисления значений функций F(n) и G(n), где n  — натуральное число, задан следующими соотношениями:

 

F(1) = 1; G(1) = 1;

F(n) = F(n – 1) – G(n – 1), G(n) = F(n–1) + G(n – 1), при n ≥ 2

 

Чему равно значение величины F(5)/G(5)? В ответе запишите только натуральное число.

 

Решение:

***************

Последовательно находим F(5) и G(5):

 

F(1) = 1;

G(1) = 1;

F(2) = 1 − 1 = 0;

G(2) = 1 + 1 = 2;

F(3) = 0 − 2 = −2;

G(3) = 0 + 2 = 2;

F(4) = −2 − 2 = −4;

G(4) = −2 + 2 = 0;

F(5) = −4 − 0 = −4;

G(5) = −4 + 0 = −4;

 

Таким образом, ответ F(5)/G(5) = 1.

Решим эту же задачу средствами языков программирования.

 

на языке BASIC на языке Python на языке Pascal

Cls

Var:

   Let F1 = 1

   Let G1 = 1

Begin:

   For n = 2 To 5

      Let f = F1 - G1

      Let g = F1 + G1

      Let F1 = f

      Let G1 = g

   Next n

   Print f / g

End

 

def F(n):

    if n == 1:

        return 1

    if n >= 2:

        return F(n - 1) - G(n - 1)

 

 

def G(n):

    if n == 1:

        return 1

    if n >= 2:

        return F(n - 1) + G(n - 1)

print(F(5) // G(5))

 

 

***************

Ответ: 1.
 
 
 
 
Решение:

***************

Проанализируем таблицу и граф.

***************

Содержание
     
 

 

 

 

 

 
 

Центр компьютерного обучения МБОУ СШ №2 © 2001 - 2024 г.