На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение





Сообщение: 1
ссылка на сообщение  Отправлено: 28.01.21 07:36. Заголовок: задание 16 №74


Подскажите, как решить задачу 74?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 9 [только новые]







Сообщение: 355
ссылка на сообщение  Отправлено: 28.01.21 11:24. Заголовок: Ответ


 
def g(n):
if n % 2 == 0:
return -1
else:
return 1

def f(n):
if n < -100000:
return 1
if n > 10:
return f(n - 1) + 3*f(n - 3) + 2
return g(n)

print(f(20))



Спасибо: 1 
ПрофильЦитата Ответить





Сообщение: 2
ссылка на сообщение  Отправлено: 28.01.21 17:22. Заголовок: ­Спасибо! А можно ут..


*PRIVAT*

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 22.02.21 22:23. Заголовок: Можно решение в Паскале?


Можно решение в Паскале?

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 371
ссылка на сообщение  Отправлено: 22.02.21 23:23. Заголовок: Ответ


 
function g (n:integer) : integer;
begin
if n mod 2 = 0 then g := -1
else g := 1
end;

function f (n:integer) : integer;
begin
if n < - 100000 then f:=1
else if n > 10 then f := f(n-1) + 3 * f(n-3) + 2
else f := g(n)
end;

begin
writeln(f(20))
end.


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 2
ссылка на сообщение  Отправлено: 27.02.21 04:10. Заголовок: polyakovss , я разоб..


polyakovss , я разобралась. Просьба выше не актуальна.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 28.02.21 12:23. Заголовок: polyakovss, условие ..


polyakovss, условие задачи выглядит так:
F(n) = 1, при n < –100000,
F(n) = F(n – 1) + 3*F(n – 3) + 2, при n > 10,
F(n) = – F(n – 1) для остальных случаев.
Непонятно, где g(n) и причем четность? Пожалуйста, объясните!

Спасибо: 0 
Цитата Ответить





Сообщение: 383
ссылка на сообщение  Отправлено: 28.02.21 17:08. Заголовок: Ответ


егэшник пишет:
 цитата:
polyakovss, условие задачи выглядит так:
F(n) = 1, при n < –100000,
F(n) = F(n – 1) + 3*F(n – 3) + 2, при n > 10,
F(n) = – F(n – 1) для остальных случаев.


Совершенно верно. Именно эта задача решена в (polyakovss Сообщение: 355 и Сообщение: 371).

егэшник пишет:
 цитата:
Непонятно, где g(n)


В условии задачи g(n) нет, но с помощью g(n) вычисляется "F(n) = – F(n – 1) для остальных случаев". Результат при решении этой задачи один и тот же.

Не все задачи решаются "в лоб". Попробуем проанализировать условие.

Из "F(n) = 1, при n < –100000" следует, что первом нечетном числе "-100001" F(-100001) = 1. Тогда из "F(n) = – F(n – 1) для остальных случаев" следует, что F(-100000) = -1.
Аналогично, F(- 99999) = 1, а F(- 99998) = -1 и так далее.

Поскольку в задаче нужно найти F(20), то для завершения рекурсии этого с избытком достаточно.

Из проведенного анализа следует, что эту задачу можно очень быстро решить и так:
 
def f(n):
if n < 8:
return 1
if n > 10:
return f(n - 1) + 3*f(n - 3) + 2
return - f(n - 1)

print(f(20))


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 01.03.21 16:05. Заголовок: polyakovss, большое ..


polyakovss, большое спасибо!

Спасибо: 0 
Цитата Ответить



Сообщение: 1
ссылка на сообщение  Отправлено: 27.02.21 03:29. Заголовок: polyakovss , спасибо..


polyakovss , спасибо за предложенное решение. А можно прокомментировать функцию g(n)?

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 187
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет