Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите плеас по инфе задания решить

Хартем Хартемович Ученик (237), на голосовании 4 года назад
1)Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями:
F(1) = 1
F(n) = F(n-1)*(n + 2), при n > 1
Чему равно значение функции F(5)?
2) Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями:
F(1) = 1
F(n) = F(n-1)*(2*n + 1), при n > 1
Чему равно значение функции F(4)?
3) Дан рекурсивный алгоритм:
def F(n):
print('*')
if n > 0:
F(n-2)
F(n // 2)
Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(7)?
4)Дан рекурсивный алгоритм:
def F(n):
print('*')
if n > 0:
F(n-3)
F(n-2)
F(n // 2)
F(n // 2)
Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)?
5) Определите, что выведет на экран программа при вызове F(6).
def F(n):
if n > 0:
F(n - 2)
F(n // 3)
print(n)
6)Ниже записаны две рекурсивные процедуры, F и G:
def F(n):
print('*')
if n > 0:
print('*')
G(n - 1)
def G(n):
print('*')
if n > 1:
F(n - 2)
Сколько символов "звёздочка" будет напечатано на экране при выполнении вызова F(12)?
7) Дан рекурсивный алгоритм:
def F(n):
print(n)
if n < 5:
F(n + 1)
F(n + 3)
Найдите сумму чисел, которые будут выведены при вызове F(1).
Голосование за лучший ответ
Elepsis Eclipse Гений (67285) 4 года назад
Ну все задачи на тему рекурсии, решаются одинаково.
Их надо делать "на бумажке" только на начальном этапе, чтобы понять, что происходит. Дальше - хорошо бы начать кодом узнавать ответы))
________________

F(1) = 1
F(n) = F(n-1)*(n + 2), при n > 1
Чему равно значение функции F(5)?

F(5) = F(4) * 7

F(5) не будет выводиться, пока не узнает значение F(4). Запоминает, что должен умножить ответ на 7 и вызывает F(4), дальше ждет...

F(4) = F(3) * 6

F(3) = F(2) * 5

F(2) = F(1) * 4 = 4

Рекурсия завершилась, теперь все остветы можно начать возвращать:

F(3) = 4 * 5 = 20

F(4) = 20 * 6 = 120

F(5) = 120 * 7 = 840
___________________

В виде кода это выглядит так:

def F(n):
    if n == 1:
        return 1

    return (n + 2) * F(n-1)

print( F(5) )
________________

коэфф (n + 2) специально написан вначале, чтобы не путать с вызовом функции. Потому что существуют еще вызовы "по цепочке" F(1)(2)(3)
Дарья СкворцоваУченик (160) 4 года назад
можно было просто сказать ответы?
Elepsis Eclipse Гений (67285) Дарья Скворцова, От голых ответов нет никакой пользы... списал-забыл)
Юра УшаковУченик (134) 1 год назад
почему ф5 на 7? объясни пожалуйста
Elepsis Eclipse Гений (67285) Юра Ушаков, Потому что изначально задано условие F(n) = F(n - 1) * (n + 2) Если n = 5, тогда (n + 2) будет 7 ) F(5) = F(4) * (5 + 2)
Евгений Ученик (174) 10 месяцев назад
списал забыл и в этом счастье
Похожие вопросы