Tishka17
зачем тогда рекурсия??)
Иногда циклом прям пипец сложно
Valery
найди в вк выпускников этого универа и спроси
какая кафедра? какие альтернативы?
Anonymous
Иногда циклом прям пипец сложно
а рекурсией разве легче?
Tishka17
а рекурсией разве легче?
Ну давай сумму всех элементов дерева циклом
Kirill
У рекурсии минус - повышенное потребление памяти. И если заранее не известна максимальная глубина рекурии, то лучше её не использовать.
Alex
Ребят, в каких ситуациях рекурсия заменяет простой цикл?
во-первых не всякую рекурсию можно выразить простым циклом.
Anonymous
Ну давай сумму всех элементов дерева циклом
то-есть суму массива посчитать?
Valery
ась?
упс, промахнулся, пока тыкал ответить спрашивающему про тусур
Anonymous
Дерева
какого
Kirill
во-первых не всякую рекурсию можно выразить простым циклом.
Человек наоборот хочет цикл заменить на рекурсию
koder
во-первых не всякую рекурсию можно выразить простым циклом.
Если не ветвится то всегда можно имитировать стек списком ))))
Anonymous
тогда это цикл будет
Tishka17
class Node: value: int children: List[Node]
Дмитрий
Дерева
чтоб ходить околоциклом по дереву которое хранится не в массиве (бинарные так хранят вроде иногда), а как ты описал - BFS
Alex
во-вторых т.к. глубина рекурсии в питоне ограничена и нет оптимизации хвостовой рекурсии - рекурсию стоит применять только если известно что глубина не превысит лимит.
Anonymous
Нет
ну напиши код такой : def f():
Anonymous
def f(): f()
Дмитрий
^
да, я увидел, BFS - ответ на это
Anonymous
и вызови
Anonymous
1000
у меня на 995 ошибка уже вылетает
Anonymous
Alex
верней конкретное значение зависит
Anonymous
Значит от компа зависит
Forevka ÐΞV
на самом деле зависит от системы
Tishka17
да, я увидел, BFS - ответ на это
Bfs без рекурсии в студию
Anonymous
чтоле
Alex
у меня на 995 ошибка уже вылетает
ну а ты глубину стека до рекурсии учел?
Anonymous
да
Anonymous
ну а ты глубину стека до рекурсии учел?
я специально вызываю неправильную рекурсию
Дмитрий
и вызови
тот же dfs проще сделать рекурсией вроде. разные сортировки которые за n*logn работают
Anonymous
Прикольно, а это от оперативы зависит глубина рекурсии
Дмитрий
ну то есть написать merge рекурсивно я смогу быстро, над циклическим вариантов придется подумать
Forevka ÐΞV
Bfs без рекурсии в студию
вот https://github.com/Forevka69/Graphs/blob/master/Graph/Graph.py#L93
Forevka ÐΞV
курсовая по матеше
Дмитрий
Bfs без рекурсии в студию
через очередь же
Aragaer
если есть tail call optimization, а рекурсия хвостовая, то она ничем не отличается от цикла
Anonymous
что?
глубина рекурсии
Дмитрий
Bfs без рекурсии в студию
ты с dfs не путаешь?
Alex
глубина рекурсии
нет, максимальная глубина рекурсии по-умолчанию зашита в интерпретатор
Alex
ты можешь ее настроить, но лучше этого не делать
Alex
ну и да зависит от размера стека
Tishka17
вот https://github.com/Forevka69/Graphs/blob/master/Graph/Graph.py#L93
Да, он прям такой же просто как рекурсивный!
Anonymous
нет, максимальная глубина рекурсии по-умолчанию зашита в интерпретатор
но экземпляры функций занимают место в памяти какое-то
Anonymous
пока процесс длится
Anonymous
значит и от оперативы в какой то мере
A.
какая кафедра? какие альтернативы?
ФДО Тусур информатика и вычислительная техника. Есть ещё направления "программное обеспечение средств вычислительной техники и автоматизированных систем" , и "системы автоматизированного проектирования", ну и прикладная информатика в экономике (не привлекает)
Anonymous
ну да ладно
Forevka ÐΞV
Alex
значит и от оперативы в какой то мере
эх.... тебе нужно бы изучить что такое стек
Anonymous
эх.... тебе нужно бы изучить что такое стек
я за рекурсию узнал сегодня ночью только)
Tishka17
https://e-maxx.ru/algo/bfs
А если надо просто сумму?
Alex
такие наивные рассуждения как-то даже не хочется комментировать
Дмитрий
А если надо просто сумму?
чтоб посчитать сумму - надо пройтись по всем вершинам. это можно сделать или рекурсивным dfs или нерекурсивным bfs.
A.
ФДО это же дополнительного не на дневной?
Факультет дистанционного обучения
Tishka17
Aragaer
по-моему в SICP есть фраза, что "цикл это просто синтаксический сахар над хвостовой рекурсией"
Forevka ÐΞV
но благодаря генераторам можно всё переписать без рекурсии
Valery
Факультет дистанционного обучения
а смысл на заочку? цель какая? корочки получить или научиться?
Forevka ÐΞV
да собственно и без них тоже можно, но да, будет сложнее чем с рекурсией
Aragaer
если есть очереди (любые fifo), то можно любую рекурсию свести к итерации по этой очереди