Автор | Сообщение |
|
Отправлено: 24.10.22 00:09. Заголовок: задание 16, № 2266
(№ 2266) (К. Амеличев) Алгоритм вычисления функции F(n) задан следующими соотношениями: F(n) = n при n ≤ 3 при n > 3: F(n) = n*n*n + F(n–1), если n делится на 3 F(n) = 4 + F(n//3), если n = 3k + 1 F(n) = n*n + F(n–2), если n = 3k + 2 Здесь // обозначает деление нацело. Чему равно значение величины F(100)? Подскажите, никак не пойму, что такое к и откуда он береться?
|
|
|
Ответов - 5
[только новые]
|
|
|
Отправлено: 24.10.22 00:18. Заголовок: Кто-нибудь решал эту..
Кто-нибудь решал эту задачу?
|
|
|
|
Отправлено: 24.10.22 19:30. Заголовок: F(n) = 4 + F(n//3), ..
F(n) = 4 + F(n//3), если n = 3k + 1 - Это значит, что n при делении на 3 даёт остаток 1. F(n) = n*n + F(n–2), если n = 3k + 2 - Это значит, что n при делении на 3 даёт остаток 2. Решить можно через простое динамическое программирование или рекурсию (если она не умрёт).
|
|
|
|
Отправлено: 24.10.22 22:10. Заголовок: Спасибо большое! Теп..
Спасибо большое! Теперь поняла
|
|
|
|
Отправлено: 24.10.22 22:18. Заголовок: def f(n): if n..
def f(n): if n<=3: return n if n>3 and n%3==0: return n*n*n+f(n-1) if n>3 and n%3==1: return 4+f(n//3) if n>3 and n%3==2: return n*n+f(n-2) print(f(100)) Даже рекурсией быстро считает, загвозка была только в этом условии
|
|
|
|
Отправлено: 12.11.22 20:50. Заголовок: Задание №16
F(n)=1 при n<3 F(n)=F(n-1)-F(n-2), если n>2 и при этом n нечётное Fn)= n-1 знак суммы i=1 F(i), если n>2 и при этом n чётное. Чему равно значение функции F(39) ef f(n): if n<3: return 1 if (n>2) and (n%2!=0): return f(n-1)-f(n-2) if (n>2) and (n%2==0): for i in range (1,n): return +f(i) print(f(39)) Не работает. Кто нибудь разбирал такое задание? Спасибо.
|
|
|
|