Самое интересное у нас в ТГ - t.me/it_minimal, подпишись, там много полезного и интересного), а также там можно задать любые вопросы, если возникают сложности и получить консультацию по языку Python / Анализу данных / Работе в IT! 🖤 СКОРО! Большой полноценный курс по анализу данных. Планируешь стать аналитиком - все, что нужно ОТ и ДО, чтоб освоить профессию собрали здесь - t.me/it_minimal. Подписывайся, чтоб не пропустить :)
Кажется я нашел самый недооцененный канал ютуба 😮 Я нихера не могу понять, почему так мало просмотров и подписчиков ?!?! Чувак, ты очень доходчиво и внятно всё объясняешь, афигенная подача, грамотная речь, плотность материала идеально разбавлена нотками юмора, смотреть твой канал - одно удовольствие ( хотя я очень дойобистый по жизни ) спасибо всем причастным к данному каналу за вашу работу!!! Пожалуйста, продолжайте ))))
Спасибо! Перед этим видео я просмотрел много разных о рекурсии...но только сейчас, посмотрев, у меня окончательно сложилось представление о работе рекурсивной функции, пазлы сложились в моей голове. Спасибо вам за вашу работу!
Давай лучше обьяснять на яблоках ,грушах, на пиве в конце концов . Пришлось фильм пересматривать 😄Спасибо за контент!👍 Для себя провел аннологию с рулеткой: вначале разматываем рулетку чтобы отмерить 1 м детали с метками по 10 см по достижению 1м сматываем обратно с тем же шаго в 10см.
Офигенно объяснил!!😂❤ меня в мозгу уозникала такая хрень. Сравнить можно только с бесконечным туннелем 🤣 когда в зеркало смотришь через отражение в зеркале. Там туннель в бесконечность... И все время была проблема с ответом на вопрос, а где же конец этому, где выход??? Теперь все ясно, как день! Спасибо огромное! 😊😊😊
на самом деле рекурсия довольно часто используется, при работе с данными, когда кол-во уровней вложенности не ограничено parent -> child -> child2 -> child3 и тд Разруливать неограниченную вложенность циклами очень громоздко, и лучше конечно это делать на уровне SQL, где для рекурсии используется более удобный синтаксис
не забудьте что рекурсия - это про копирование области видимости. и кроме того что она "просто вызывает сама себя" - старая, уже запущенная функция, никуда не пропадает, а значит и данные, которые в ней были тоже. и вот запустив саму себя 100 раз получили 100 копий данных, которые в ней появлялись и присваивались в переменные! (каждые для своего вызова) вот почему рекурсию стоит использовать там, где данные передаются в виде аргументов, а не хранятся внутри тела. то есть функция факториала должна предыдущий результат сразу же забрасывать аргументом в вызов "самой себя", а не хранить его в переменной рядом. или по крайней мере хранить только один результат вычисления, чтобы память на одном само-вызове расходовалась по нескольку байт, а не килобайтами. самый частый случай - это написать рекурсию в каком-то классе, которая будет иметь ту же область видимости, что и весь класс. и запустив себя 100 раз она скопирует все данные-не-обьекты 100 раз, на случай если в каком-то из уровней они изменятся в некоторых языках есть понятие "ссылки", и в переменную можно положить не значение, а ссылку на уже существующее место в памяти, то есть оба имени переменной будут вести в одну и ту же коробку, где складируются результаты. в этом случае данные лежат один раз, а в переменной лежит 1 байт адреса куда она смотрит. в остальных случаях её пишут с помощью цикла while избегая создания функций. while (queue) { // или stack (стек обходит в глубину 1 -> 1.1 -> 2 -> 2.1, очередь - в ширину 1 -> 2 -> 1.1 -> 2.1 ) current = queue.shift(); // если стек - то pop() if (condition) { do_some(current); } else { queue.push(next step); // если стек - то unshift() } }
Самое интересное у нас в ТГ - t.me/it_minimal, подпишись, там много полезного и интересного), а также там можно задать любые вопросы, если возникают сложности и получить консультацию по языку Python / Анализу данных / Работе в IT! 🖤
СКОРО! Большой полноценный курс по анализу данных. Планируешь стать аналитиком - все, что нужно ОТ и ДО, чтоб освоить профессию собрали здесь - t.me/it_minimal. Подписывайся, чтоб не пропустить :)
Кажется я нашел самый недооцененный канал ютуба 😮
Я нихера не могу понять, почему так мало просмотров и подписчиков ?!?!
Чувак, ты очень доходчиво и внятно всё объясняешь, афигенная подача, грамотная речь, плотность материала идеально разбавлена нотками юмора, смотреть твой канал - одно удовольствие ( хотя я очень дойобистый по жизни ) спасибо всем причастным к данному каналу за вашу работу!!! Пожалуйста, продолжайте ))))
спасибо тебе огромное за объяснение, желаю дальнейшего развития этого канала
Спасибо! Перед этим видео я просмотрел много разных о рекурсии...но только сейчас, посмотрев, у меня окончательно сложилось представление о работе рекурсивной функции, пазлы сложились в моей голове.
Спасибо вам за вашу работу!
Давай лучше обьяснять на яблоках ,грушах, на пиве в конце концов . Пришлось фильм пересматривать 😄Спасибо за контент!👍
Для себя провел аннологию с рулеткой: вначале разматываем рулетку чтобы отмерить 1 м детали с метками по 10 см по достижению 1м сматываем обратно с тем же шаго в 10см.
😄
Супер круто. Сенсей, а расскажите о замыкании функций? Вообще не понимаю зачем оно нужно
Офигенно объяснил!!😂❤ меня в мозгу уозникала такая хрень. Сравнить можно только с бесконечным туннелем 🤣 когда в зеркало смотришь через отражение в зеркале. Там туннель в бесконечность... И все время была проблема с ответом на вопрос, а где же конец этому, где выход???
Теперь все ясно, как день! Спасибо огромное! 😊😊😊
на самом деле рекурсия довольно часто используется, при работе с данными, когда кол-во уровней вложенности не ограничено parent -> child -> child2 -> child3 и тд
Разруливать неограниченную вложенность циклами очень громоздко, и лучше конечно это делать на уровне SQL, где для рекурсии используется более удобный синтаксис
Данные данным - рознь, как и аналитика аналитике
не забудьте что рекурсия - это про копирование области видимости. и кроме того что она "просто вызывает сама себя" - старая, уже запущенная функция, никуда не пропадает, а значит и данные, которые в ней были тоже. и вот запустив саму себя 100 раз получили 100 копий данных, которые в ней появлялись и присваивались в переменные! (каждые для своего вызова) вот почему рекурсию стоит использовать там, где данные передаются в виде аргументов, а не хранятся внутри тела.
то есть функция факториала должна предыдущий результат сразу же забрасывать аргументом в вызов "самой себя", а не хранить его в переменной рядом. или по крайней мере хранить только один результат вычисления, чтобы память на одном само-вызове расходовалась по нескольку байт, а не килобайтами. самый частый случай - это написать рекурсию в каком-то классе, которая будет иметь ту же область видимости, что и весь класс. и запустив себя 100 раз она скопирует все данные-не-обьекты 100 раз, на случай если в каком-то из уровней они изменятся
в некоторых языках есть понятие "ссылки", и в переменную можно положить не значение, а ссылку на уже существующее место в памяти, то есть оба имени переменной будут вести в одну и ту же коробку, где складируются результаты. в этом случае данные лежат один раз, а в переменной лежит 1 байт адреса куда она смотрит.
в остальных случаях её пишут с помощью цикла while избегая создания функций.
while (queue) { // или stack (стек обходит в глубину 1 -> 1.1 -> 2 -> 2.1, очередь - в ширину 1 -> 2 -> 1.1 -> 2.1 )
current = queue.shift(); // если стек - то pop()
if (condition) {
do_some(current);
} else {
queue.push(next step); // если стек - то unshift()
}
}
Отличный комментарий 👍
@@it_minimal помогите найти работу...
Аминь 😂