16.02 Две функции
Ошибка.
Попробуйте повторить позже
Алгоритмы вычисления значения функции и
, где n — целое неотрицательное число, заданы следующими
соотношениями:
;
;
, при
;
, при
;
;
, при
.
Определите значение .
Динамическое решение
f = [0] * 10 g = [0] * 10 # Заполняем известные значения f[0] = 2 f[1] = 5 g[5] = 1 # Делаем перебор по возрастанию, # так как нужно обращаться к (n-1) и (n-2), # значения которых должны быть посчитаны заранее for n in range(10): if n > 1: f[n] = f[n - 1] * f[n - 2] if n < 5: g[n] = 0 if n > 5: g[n] = g[n - 1] + f[n - 2] print(f[5] + g[8])
Рекурсивное решение
def f(n): if n == 0: return 2 if n == 1: return 5 return f(n - 1) * f(n - 2) def g(n): if n < 5: return 0 if n == 5: return 1 return g(n - 1) + f(n - 2) print(f(5) + g(8))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значений функций и
, где
— натуральное число, задан следующими
соотношениями:
Чему равно значение величины ?
def f(n): if n == 1: return 1 return f(n - 1) - 2 * g(n - 1) def g(n): if n == 1: return 1 return f(n - 1) + 2 * g(n - 1) print(g(7) + f(4))
Ошибка.
Попробуйте повторить позже
Ниже записаны две рекурсивные функции F и G:
Помогите БУ определить числовое значение выражения
def f(n): if n <= 2: return n * 2 if n > 2: return f(n - 2) + g(n - 2) def g(n): if n <= 3: return n if n > 3: return g(n - 1) + f(n - 2) * f(n - 2) print(f(6) + g(8))
Ошибка.
Попробуйте повторить позже
Ниже записаны две рекурсивные функции F и G:
Помогите БУ определить числовое значение выражения
def f(n): if n <= 1: return n * 3 if n > 1: return f(n - 2) + 2 * g(n - 1) def g(n): if n <= 2: return n if n > 2: return g(n - 2) + 2 * f(n - 2) * f(n - 2) print(f(5) + g(6))
Ошибка.
Попробуйте повторить позже
Ниже записаны две рекурсивные функции F и G:
Помогите БУ определить числовое значение выражения
def F(n): if n <= 2: return n * n if n > 2: return F(n - 1) + G(n - 2) def G(n): if n <= 1: return n * 4 if n > 1: return G(n - 1) + F(n - 2) * F(n - 3) print(F(7) + G(8))
Ошибка.
Попробуйте повторить позже
Ниже записаны две рекурсивные функции и
:
Чему равно выражение ?
Решение программой:
def F(n): if n < 10: return n if n > 9: return F(n) * F(n - 2) def G(n): if n < 11: return n * 3 if n > 10 and n % 7 != 0: return F(n ** 2) + F(n ** 2 + 1) + F(n * n) print(G(10) ** F(2) + F(5))
Ошибка.
Попробуйте повторить позже
Ниже записаны две рекурсивные функции и
:
Чему равна сумма цифр данного выражения
Решение программой:
def f(n): if n <= 10: return n if n % 10 == 0: return f(n % 5) + 1 return n * f(n - 1) def g(n): if n >= 21: return n * n + 1 * n + 3 if n % 2 == 0: return 2 * g(n - 2) * g(n - 4) return 2 * g(n - 1) * g(n - 3) print(sum(int(_) for _ in (str(f(g(f(g(22))))))))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значений функций и
, где n - целое неотрицательное число меньшее 1000, задан
следующими соотношениями: («//» - целочисленное деление)
При каких (каком) значениях (значении) n, выражение: , меньше
. В качестве ответа укажите сумму
таких значений
.
(Например: ,
. В ответ указываем сумму
и
).
Решение программой:
def f(n): if n < 5: return 1 if n % 5 == 0: return f(n // 5) return n - 5 * (n // 5) + f(n - 5 * (n // 5)) def g(n): if n < 7: return 1 if n % 7 == 0: return g(n // 7) return n - 7 * (n // 7) + g(n - 7 * (n // 7)) ans = 0 for n in range(1000): if g(n) + f(n) < 3: ans += n print(ans)
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значений функций и
, где n - целое неотрицательное, задан следующими
соотношениями:
Чему равно значение выражения: ?
Решение программой:
def G(n): if n < 2: return 1 if n > 1: return F(n - 1) + 2 * G(n - 1) def F(n): if n < 2: return 1 if n % 2 == 1 and n > 1: return F(n - 1) + G(n - 1) if n % 2 == 0 and n > 1: return F(n - 2) + G(n - 2) print(F(25) - G(25))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значений функций и
, где
— натуральное число, задан следующими
соотношениями:
Чему равно значение величины ?
Решение программой:
def f(n): if n == 1: return 1 return f(n - 1) - g(n - 1) def g(n): if n == 1: return 1 return f(n - 1) + 3 * g(n - 1) print(g(16) + f(9))
Ошибка.
Попробуйте повторить позже
Ниже записаны две рекурсивные функции и
, где n – натуральное число, задан следующими
соотношениями:
Определите числовое значение выражения
Решение программой:
def F(n): if n <= 2: return n * n if n > 2: return F(n - 2) + G(n - 1) * 2 - n def G(n): if n <= 2: return n + 1 if n > 2: return G(n - 1) + F(n - 2) + n print(F(5) + G(3))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значений функций и
, где
- натуральное число, задан следующими
соотношениями:
, при
, при
, при
, при
Чему равно значение функции ?
Динамическое решение
f = [0] * 200 g = [0] * 200 # Делаем перебор по убыванию, # так как обращение идёт к (n+1) и (n+2), # которые должны быть посчитаны заранее for n in range(100, -1, -1): if n > 10: f[n] = n ** 2 if n <= 10: f[n] = f[n + 2] - 2 * g[n + 1] if n < 2: g[n] = n ** 3 if n >= 2: g[n] = f[n + 1] print(f[18])
Рекурсивное решение
def f(n): if n > 10: return n ** 2 else: return f(n + 2) - 2 * g(n + 1) def g(n): if n < 2: return n ** 3 else: return f(n + 1) print(f(18))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значений функций и
, где
- натуральное число, задан следующими
соотношениями:
, при
, при
, при
где значит целочисленное деление
Чему равно значение ?
Решение программой:
def F(n): if n < 3: return 2 return F(n - 1) + 2 * G(n - 1) + F(n // 2) def G(n): if n < 3: return 2 return F(n - 1) + G(n // 3) + G(n - 1) print(F(12)+ G(4))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значений функций и
, где
- натуральное число, задан следующими
соотношениями:
, при
, при
, при
, при
Чему равно значение ?
Решение программой:
def F(n): if n < 3: return 2 * n * n + 2 return F(n - 1) + G(n - 2) def G(n): if n < 3: return 2 * n * n + 2 return G(n - 2) + n * n - 3 print(F(15) * G(5))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значений функций и
, где
- натуральное число, задан следующими
соотношениями:
, при
, при
, при
Чему равна сумма цифр значения функции G()?
Решение программой:
def f(n): if n <= 1: return 11 return f(n - 5) + n * g(n // 4) def g(n): if n <= 1: return 11 return f(n // 3) + g(n - 1) summa = 0 s = str(g(21)) for i in s: summa += int(i) print(summa)
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значения функций и
, где
— целое неотрицательное число, задан следующими
соотношениями:
, при
, если
и остаток от деления
на 2 равен 0
, если
и остаток от деления
на 2 равен 1
, если
и не делится на 3
, если
и делится на 3
, в других случаях
Определите наибольшее значение из отрезка
, при котором сумма цифр значения
равна
33.
Примечание: знак </> в данной задаче означает целочисленное деление.
Решение программой:
def f(n): if n > 11 and n % 2 == 0: return g(n // 2) * 2 - f(n - 1) if n > 11 and n % 2 == 1: return -g(n - 1) return n def g(n): if n < 12 and n % 3 != 0: return f(n - 1) + n elif n < 12 and n % 3 == 0: return g(n - 1) + f(n // 3) - n return n * n for i in range(1000, 0, -1): s, summa = abs(f(i)), 0 while s > 0: summa += (s % 10) s //= 10 if summa == 33: print(i) break
Ошибка.
Попробуйте повторить позже
Алгоритмы вычисления значения функции и
, где
— натуральное число, заданы следующими
соотношениями:
Чему равно значение функции ?
Решение программой:
def f(n): if n == 1: return 1 return f(n - 1) * n def q(n): if n == 1: return 1 if n == 2: return 3 return q(n - 2) + q(n - 1) print(f(6) + q(4))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления функций и
задан следующими соотношениями:
при
при
Чему равна сумма цифр значения функции F(20)?
Решение программой:
from functools import lru_cache def sum_of_digits(n): # Функция,подсчитывающая сумму цифр числа s = 0 while n > 0: s += n % 10 n //= 10 return s @lru_cache(None) def f(n): if n == 1: return 1 if n > 1: return f(n - 1) + 2 * g(n - 1) @lru_cache(None) def g(n): if n == 1: return 1 if n > 1: return f(n - 1) - 3 * g(n - 1) print(sum_of_digits(f(20)))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления функций F(n) и G(n) задан следующими соотношениями:
, при
, при
, при
Чему равно значение функции G(5)?
Решение программой:
from functools import lru_cache @lru_cache(None) def f(n): if n == 1: return 2 if n > 1: return g(n - 1) * f(n - 1) - n ** n def g(n): if n == 1: return 2 if n > 1: return 5 * f(n - 1) - n * g(n - 1) print(g(5))
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значения функций и
, где
- целое неотрицательное число, заданы следующими
соотношениями:
при
при
при
.
при
.
Чему равно значение функции ?
В ответе запишите только целое число.
Решение программой:
def f(n): if n <= 2: return 1 if n > 2: return f(n - 1) + g(n - 2) - 2 def g(n): if n <= 3: return 2 if n > 3: return g(n - 1) - f(n - 2) + 2 print(f(31))