Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 10, 2017 15:26:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Задача, понимающим рекурсию

Shaman
Ключевые слова: “подъём” и “спуск”.
При таком варианте она не будет оптимизирована и твой спуск выпадет с лимитом, когда туда подадут n = 100000. И ты его никак в цикл не превратишь, потому что написал всё вот таким макаром.



Офлайн

#2 Окт. 10, 2017 15:33:02

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Задача, понимающим рекурсию

py.user.next
При таком варианте она не будет оптимизирована и твой спуск выпадет с лимитом, когда туда подадут n = 100000. И ты его никак в цикл не превратишь, потому что написал всё вот таким макаром.
Существуют вполне обыденные задачи, при решении которых мыслеблудие математиков только мешает.

Офлайн

#3 Окт. 11, 2017 00:40:23

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Задача, понимающим рекурсию

Shaman
Существуют вполне обыденные задачи
Он хочет разобраться, а ты ему предлагаешь школьный уровень, который при реальной разработке вылезет. Школьные примерчики хороши для школы и школьных учителей информатики, коих мы тут видали уже.



Отредактировано py.user.next (Окт. 11, 2017 00:40:58)

Офлайн

#4 Окт. 11, 2017 08:01:18

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Задача, понимающим рекурсию

Ну блин

Helseeret
Нам надо как-то выводить числа стека только после того, как она достигнет базого случая и пойдет на спад. Как это сделать ?

Офлайн

#5 Окт. 11, 2017 08:06:42

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Задача, понимающим рекурсию

py.user.next
Он хочет разобраться, а ты ему предлагаешь школьный уровень.
Тут вся тема - школьный уровень.

Офлайн

#6 Окт. 11, 2017 08:09:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Задача, понимающим рекурсию

Shaman
Ну блин
Ну ребёнок-то маленький тоже одни конфеты есть хочет. А уровень сахара в крови, анализы, больницы в шесть утра? Знает он, что всё это будет из-за конфет?



Отредактировано py.user.next (Окт. 11, 2017 08:09:24)

Офлайн

#7 Окт. 11, 2017 08:16:58

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Задача, понимающим рекурсию

py.user.next
Ну ребёнок-то маленький тоже одни конфеты есть хочет. А уровень сахара в крови, анализы, больницы в шесть утра? Знает он, что всё это будет из-за конфет?
Ребёнок в реальной жизни будет не только цифирки складывать, но и деревья с графами обходить, да ещё и с побочными эффектами.

Офлайн

#8 Окт. 31, 2017 17:13:11

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Задача, понимающим рекурсию

Helseeret
Для начала, как я понимаю, в каждой рекурсивной функции т.е каждый раз когда функция вызывает саму себя сохраняются переменные этой функции т.е используя рекурсию у нас на каждом вызове функции будут разные переменные, и выполняться будет она до базового случая, а как она дойдет до базового случая она будет идти в обратном порядке, используя значения верх лежащей функции (если рассматривать стек, как кувшин, в котором последней зашедшей предмет будет выходить первым) для вычисления низ лежайшей функции и так до тех пор пока не дойдет до самой первой вызванной функции. Так вот задача звучит так вывести рекурсивно числа от 1 до n. Суть в том, что понимаю как работает стек и рекурсия. Т.е вывести с n до 1 получается, а наоборот нет. Не понимаю как эту задачу выполнить, ведь при шаге рекурсии (n-1) наш стек заполняется от n до 1 значениями где 1 будет в самом верху стека, и только после этого выводить все элементы стека, когда рекурсия пойдет на спад, но если подключить print мы будем выводить числа с n до 1, а не с 1 до n. Нам надо как-то выводить числа стека только после того, как она достигнет базого случая и пойдет на спад. Как это сделать ? Кто может, объясните пожалуйста словами, а не просто кодом. Вот мой вариант с кодом от n до 1, a надо с 1 до n

Чтобы вывести N чисел по порядку, надо сначала вывести N-1 чисел и вывести N. Вот и мы и получили зависимость функции от самой себя. Ну а чтобы рекурсия не была бесконечна, надо проверить N на 1.

 def prn(n):
    if n != 1:
        prn(n-1)
    print(n)
prn(5)



Отредактировано Isem (Окт. 31, 2017 17:13:46)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version