Python functions. recursion
Вставка
- Опубліковано 18 сер 2020
- Lesson topic: recursion in python. In the lesson, we will consider recursion, how a recursive function is defined and the implementation of a recursive algorithm using the factorial as an example.
Let's compare recursion and the iterative approach to the implementation of the algorithm.
-------------------------------------------------- -------------------------------------------------- ----------------------------------------------
Become a channel sponsor and you will get access to exclusive bonuses. More:
/ @pythonhubstudio
-------------------------------------------------- -------------------------------------------------- ----------------------------------------------
Subscribe to the channel! Ask questions in the comments!
#PythonHubStudio
#python
как мана небесная, ваша видео посыпалось мне на голову. Спасибо большое
Спасибо. Ваш урок очень помог в осознании данного понятия.
Молодец.
Главное пробовать, стараться, работа над ошибками и снова в бой.
Молодец!!!
Как приятно Вас слушать! И рекурсия уже не такой непонятной кажется))
Большое спасибо. Отличное объяснение.
Шикарная подача материала! Спасибо)
Спасибо за Ваш труд.
Спасибо понятно обьяснил
Очень полезно, спасибо вам )
Спасибо 😘
после return можно не писать else, потому что return при вызове прекращает действие цикла
В данном случае else относится как и всегда и обычно к условию в if. Первый return срабатывает если выполняется условие в if. А если оно не срабатывает, то - else.
Тут не сразу st == 0
Бро у тебя очень крутая подача, но очень плохой звук .....
Здравствуйте, Извините за беспокойство 😊
Помогите пожалуйста 🙏
Значение cos(x), при xизменяемом от 0.1 до 1 с шагом 0.1 можно вычислить с помощью следующего ряда:
Y=1 - x^2/2! + x^4/4! - x^6/6! +...+x^2n/(2n)!
Вычисления y для каждого значения x выполнять с точностью 0.00001. Результат представить в виде таблицы x, y, cos(x).
Понял только одно - рекурсия редко применяется и это главное.
на собеседованиях применяется))
Можете пояснить на что умножается num в этом коде? Ведь там два аргумента в скобках.
return num * some(num, st - 1)
num умножается на на return результата some(num, st-1).
num * some(num, sr-1) ==> num*num*some(num, st-1),и так далее, пока не получится:
num*num*num*num*num*1
То-есть num после каждого перезапуска функции становиться меньше на 1
Поясните пожалуйста, почему возвращается ответ, а не 1, когда st становится равным 0? ведь if st==0: return 1
Каждый цикл рекурсии что то возвращает. И накапливается 5*4*3*2*1после return 1 перемножаются и получается ответ. См. другой комментарий
хлопаю стоя хе
Поясните пожалуйста. В какую переменную записывается умножение num * some(num-1) за каждый проход?
Ни в какую, в точке вызова накапливается выражение, и когда рекурсия заканчивается происходит расчет
num*num*num....
@@PythonHubStudio теперь понял. Спасибо!
спасибаа вам класна
Пожалуйста!
Зачем писать else? Разве недостаточно просто написать return n * fact(n-1)
Да, достаточно
Я конечно дико извиняюсь, и никоим образом не хочу никого обидеть....но. Я понимаю, после просмотра этого урока, что автор сам плавает в понятиях о рекурсии. Автор, пожалуйста, объясните ход выполнения кода (хотя бы частично) с использованием разъяснений о том, когда (в какой строке), какие данные попадаеют в стек, и когда (в какой строке) они из стека извлекаются, и после извлечения в какую строку происходит переход интерпретатора. Спасибо заранее. Тогда всем действительно станет понятно как работает рекурсия.
P.S. потому как то, что вы назвали хвостовой рекурсией, при знании внутренней работы стека, если написано правильно не вызывает заполнения этого стека более чем на верное, рассчитанное колличество вызовов, которые оперативно используются, и своевременно отправляются/вынимаются из стека.
Но тут беда в другом. Не в том, что я написал как претензию. А то, что у меня складывается ощущение, что никто до конца не понимает рекурсию. И в этом наша слабость. Я тоже её не понимаю до конца. Со стороны внутренних процессов. А поэтому ищу тех, кто расскажет до конца. Это важно! Мы никогда не будем сильными программистами, пока не будем знать это досконально.
Тут беда не в том, а в том что видео показывает и объясняет рекурсию на примере кода, то есть как это реализовать. Хотите изучить стек? - запустите отладчик и будет вам информация о стеке.