Тёмный

Рекурсия. Репка и матрёшка 

Тимофей Хирьянов
Подписаться 354 тыс.
Просмотров 119 тыс.
50% 1

Сказка "Репка". Крайний случай.
Прямой и обратный ход рекурсии.
Алгоритм изготовления матрёшки.
Программа, печатающая матрёшку.
Курс молодого бойца по информатике (Язык Си).
cs.mipt.ru/c_intro

Опубликовано:

 

23 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 208   
@tkhirianov
@tkhirianov 4 года назад
Вариант с музыкой: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-n3Q_FIJ6s-s.html
@splinetech
@splinetech 4 года назад
Потерялись десять ньютонов в процессе, непорядок! ))) Или я чего-тоне понял?
@AlfRentgen
@AlfRentgen 4 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-rJYf-h38i-o.html
@ULTRALIBERAL
@ULTRALIBERAL 3 года назад
ой повезло повезло - преподователь сразу с музыкой делает уроки
@str1753
@str1753 2 года назад
А герои Русской сказки уже вкурсе что он лишь программы из мира машин? А их тела всеголишь батарейки для добычи 200 кН?
@JonSonMus
@JonSonMus 2 года назад
@@str1753 это матрица - людэ не существуе
@sixaxisization
@sixaxisization 5 лет назад
- Папа расскажи мне сказку. - Какую? - Бесконечную.
@leda9518
@leda9518 3 года назад
Рекурсинувн
@IBmusic_vector
@IBmusic_vector 2 года назад
for(;;){}
@sixaxisization
@sixaxisization 2 года назад
@@IBmusic_vector while(true);
@Ruslan-nj5zw
@Ruslan-nj5zw 2 года назад
или так: -папа, расскажи сказку -про что? -про то как ты рассказываешь сказку -про что? ...
@oleksandrhrysha7348
@oleksandrhrysha7348 Год назад
@@Ruslan-nj5zw а вот и юморист 1
@Youtooobo
@Youtooobo 3 года назад
Должен признаться очень интересный и оригинальный подход к подаче материала. Совмещение 2D элементов на доске с 3D объектами на столе создают какое то неописуемое погружение в процесс и заставляют, как то по особенному воспринимать информацию. Спасибо, было очень интересно.
@airmanbio5125
@airmanbio5125 Год назад
Да, я тоже кайфанул от этого)
@algoseekee
@algoseekee 4 года назад
8 человек которые поставили дизлайк: репка, дедка, бабка, внучка, и далее по списку.
@supervichka7764
@supervichka7764 4 года назад
ахаххаахахахаха
@user-ix7kt4li5y
@user-ix7kt4li5y 5 лет назад
Мастер спецэффектов) Спасибо, очень грамотно) Успехов!
@ИванИванов-у3ч4м
@ИванИванов-у3ч4м 3 года назад
Это просто какой-то умопомрачительный талант объяснять сложные вещи - простым языком. Спасибо!
@shiftingsandsgames
@shiftingsandsgames Год назад
дааа, лучший преподаватель имхо! свободно говорю на англ., но всегда пересматриваю его уроки уже на русском
@juvusart
@juvusart 5 лет назад
Очень годный контент. Лучшее объяснение рекурсии во вселенной) Спасибо!
@NikitaSafronov-y6i
@NikitaSafronov-y6i 4 года назад
Парень молодец. Уважение и почет, что делишся своими знаниями с другими. Да и еще с такой подготовкой материала. Супер.
@kataleya4569
@kataleya4569 4 года назад
Вайй,святые небеса!!😂 Наконец-то, я поняла,что такое рекурсия😂
@uullarg
@uullarg 4 года назад
Хорошо (просто, образно и понятно) объяснил рекурсию! В институте, в конце 80-х, пару лет ловил этот образ, а тут всё так чётко и понятно! Молодец! Спасибо!
@krupigor
@krupigor 5 лет назад
Гениально!!!
@dmitry-utkin
@dmitry-utkin 4 года назад
Системный блок как подставка для матрешек. Жестко.
@КунаковБатутемир
@КунаковБатутемир 4 года назад
Спасибо за знания УЧИТЕЛЬ!
@КириллКавалеров-б8х
Одно из лучших объяснении про рекурсию)
@vallery1395
@vallery1395 3 года назад
Самое крутое и самое понятное объяснение рекурсии которое я видела в интернете! Спасибо огромное! Посоветую ваши видео друзьям!
@Павел-е9л
@Павел-е9л 5 лет назад
Ты просто красавчик!!! Огромное спасибо
@slavax4b671
@slavax4b671 5 лет назад
ахаах эти демонстрации бесценны :D
@dmitrii_kotoff
@dmitrii_kotoff 11 месяцев назад
Светлая Голова, спасибо Вам большое! Только талантливый человек может говорить о сложном просто.
@LifeSakh
@LifeSakh 4 года назад
Лучшего объяснения рекурсии не придумать!!! Да еще и на сказке) Спасибо!
@МайклМиколайович
Огромная благодарность.
@dmitrijponkin
@dmitrijponkin 4 года назад
Самое лучшее объяснение!!! Спасибо :))
@whisperonpages
@whisperonpages 5 месяцев назад
Как человек, который лучше воспринимает информацию визуально и у которого проблемы с пониманием рекурсии (были до просмотра видео) безумно благодарна вам, что разложили этого зверя на матрешки 😁 Было не только полезно, но и безумно интересно, не оторваться от просмотра)
@deskentunhuman3336
@deskentunhuman3336 3 года назад
До сих пор не понятно - как люди изучали программирование, когда не было канала Тимофея? Спасибо за объяснение, вы - супер! :)
@ИринаК-р1е
@ИринаК-р1е 2 года назад
Блин, это одно из лучших видео объяснений на простых вещах. Огромное спасибо автору.
@eladkipiani2200
@eladkipiani2200 5 лет назад
гениальная постановка :)
@ApplePommeful
@ApplePommeful 4 года назад
Тимофей, вы лучший объяснятор! Спасибо! Однозначный лайк
@bezumie9367
@bezumie9367 Год назад
Вы просто гений объяснений, спасибо!)
@pegasovich
@pegasovich 4 года назад
самое годное объяснение в youtube - благодарочка!!!
@orange-vlcybpd2
@orange-vlcybpd2 4 года назад
Спасибо Вам за труд, это очень классно.
@ShiraoriAteU
@ShiraoriAteU 4 года назад
Сколько не смотрел, так и не понимаю то, почему дед просто не вызывает второго деда. FeelsBadMan
@Такойсебе3дшник
@Такойсебе3дшник 4 года назад
А вдруг гони последние люди на земле и просто пытаются выжить в суровом мире. Там вон. Даже мышь понимает размах ситуации)
@programer8
@programer8 4 года назад
@@Такойсебе3дшник а может это последняя репка на земле, и делить они ее не хотят
@ЕвгенийВовк-ы7ь
@ЕвгенийВовк-ы7ь 3 года назад
Ответ в следующем ролике из плейлиста ;)
@ShiraoriAteU
@ShiraoriAteU 3 года назад
@@ЕвгенийВовк-ы7ь Я имел в виду что: У нас есть программа, и у неё есть ресурс в виде "Деда", который может тянуть 50 ньютнов. Так почему бы не сделать программу так, чтобы она сперва посмотрела на то, сколько ей ещё нужно дотянуть и такая "Ага, мне нужно ещё вытянуть 50 ньютонов и у меня есть как раз дедов на всю дозволенную RAM которые будут тянуть по 50 ньютонов... Пожалуй вызову я одного!" вместо того, чтобы вызывать бабку, дочку, собачку, кошку, МЫШКУ. (или пример таким, чтобы нужно было вытягивать не 100 ньтонов, а 120 например. Чтобы имела место рекурсия) Я сейчас пишу как человек, который уже всё бросил (Да простят меня Центральный Процессор Всевышний да Святая Щперационная Система). Так что, прошу no offens.
@olvler
@olvler 3 года назад
Думаете дед с дедом живет, по американской традиции? Семья так - для прикрытия?
@ПолинаКурносова-и8с
спасибо большое за ваши простые, но идеально подходящие под этот случай, примеры! Однозначно лайк и подписка!!
@dmitryvidonov9518
@dmitryvidonov9518 Год назад
Бесподобное объяснение рекурсии) Прям вот мое почтение)
@infupd
@infupd 6 лет назад
Супер пояснение! Спасибо!
@СтепанКазанский-ж2к
Это просто гениально. Спасибо огромное! Вы лучший
@sofiipochta
@sofiipochta 9 месяцев назад
Спасибо, посмотрела!
@ritchenko
@ritchenko 4 года назад
Спасибо за вашу работу. Очень выручают ваши ролики)
@gangstachel3472
@gangstachel3472 2 года назад
Все гениальное - просто. Спасибо за урок, после него я наконец смог самостоятельно разобраться в рекурсивном решении задачи про Ханойские башни.
@hloesilen
@hloesilen 4 года назад
матрешки изготавливают по обратной рекурсии. А так объяснение очень классное! Буквально на пальцах
@igorpii4739
@igorpii4739 4 года назад
давно программирую на С, но только сейчас нормально понял рекурсивную функцию:). Гениально простое объяснение!
@Beats-and-Bliss
@Beats-and-Bliss 6 лет назад
почему Вас не было в моем институте?! или наоборот)) Спасибо!
@MaxPV1981
@MaxPV1981 4 года назад
@@serjoberst6322 "Почему не Вы не были в не моём институте?"
@ralphlauren8349
@ralphlauren8349 4 года назад
@@MaxPV1981 абсурд
@MaxPV1981
@MaxPV1981 4 года назад
@@ralphlauren8349 Не может быть!
@КарабасБарабас-н6щ
@@serjoberst6322 почему я не был в вашем институте?
@KAPMAH4IK
@KAPMAH4IK 3 года назад
почему мой институт не был в Вас?..
@netneutrality2024
@netneutrality2024 3 года назад
Гениальный пример с репкой. Спасибо.
@_pheax
@_pheax 4 года назад
я понял рекурсию 😊. круто Тимофей Федорович. спасибо
@АскаровРуслан-л5м
@АскаровРуслан-л5м 4 года назад
спасибо за подробное объяснение.
@befuture_ru
@befuture_ru 4 года назад
Спасибо Тимофей за Ваше время, не каждый умеет рассказать просто о сложном! Топ контент!
@МарияЛитвинова-ю1д
Гениальное объяснение!
@rieltor_in_Kiev
@rieltor_in_Kiev 3 года назад
Очень крутое объяснение!!! Аплодирую стоя!!!
@gkavboy
@gkavboy 4 года назад
Шикарная анимация!!!!!
@АлексейПеченов-ч9и
Спасибо за научное объяснение сказки "Репка" :)
@МихаилЧопик-о2о
@МихаилЧопик-о2о 2 месяца назад
Талантище, преподаватель с большой буквы. жаль, что питон не объсняет.
@sjdjjsjsjs3991
@sjdjjsjsjs3991 18 дней назад
Так лекция про рекурсия, а не Питон
@сергейустинов-э1с
@сергейустинов-э1с 3 года назад
Здоровья вам Тимофей ) шикарные уроки и понятные до предела )))
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov Год назад
Спасибо от Димули, 37 годиков за добрую сказочку ))
@pasham776
@pasham776 4 года назад
Когда объясняется, все понятно, а за дело берешься, то какая то магия) Трудно воспринимается, когда функция инициализируется данными из стека.
@svetameanssun
@svetameanssun Год назад
Невероятно! Спасибо большое за объяснение!
@archiechellaut9483
@archiechellaut9483 3 года назад
Большое спасибо, Тимофей!
@evgeniyayav
@evgeniyayav 4 года назад
Даже гуманитарий понял 😄 спасибо!)
@Антон-ъ6ж2е
@Антон-ъ6ж2е 4 года назад
Круто, спасибо! Наконец-то понял рекурсивное программирование)
@kazbek_azirbayev
@kazbek_azirbayev 3 года назад
шиканое объяснение, спасибо ребята!
@non5309
@non5309 3 года назад
наконец-то хорошее видео про объяснение рекурсии
@zyzukan
@zyzukan 3 года назад
благодорю Тимофея за это видео
@C2H5OHH
@C2H5OHH 3 года назад
Потрясающе! Спасибо за урок!!!
@Артем-я7к1щ
@Артем-я7к1щ 3 года назад
наконец-то я понял рекурсию. Огромное спасибо
@Аннанежная-м8я
@Аннанежная-м8я 3 года назад
Залипательный контент у вас! Очень весело про нужное
@alexsidikov3426
@alexsidikov3426 Год назад
Я не знаю или я глупый или другие плохо объясняют, но видимо это мое идеальное объяснение рекурсии в программировании)))))
@MxM_5835
@MxM_5835 3 года назад
Отличное объяснение! Спасибо 🤝
@lenaa_now7737
@lenaa_now7737 3 года назад
великолепное объяснение) спасибо!
@vladious8002
@vladious8002 4 года назад
Спасибо!
@dariasidorenko6097
@dariasidorenko6097 4 года назад
Спасибо! Потрясающе интересное объяснение! И, конечно, отдельно отмечу, как круто вы рисуете мелом на камеру и выставляете фигурки - действительно, мастер спецэффектов. Подскажите, кого можно посмотреть, кто так же круто объясняет рекурсию и всё остальное, но в связке с JS?
@Kollapser
@Kollapser 3 года назад
Со стрелками и матрёшками забавно вышло)))
@soundmorozov
@soundmorozov Год назад
Кайф! Спасибо!🍉
@vladgalekas
@vladgalekas 3 года назад
лучший, просто лучший.
@Oh_sssshit
@Oh_sssshit 2 года назад
бабка, какая у неё сила.... от души посмеялся
@СергейПресняков-о4р
Салат рекурсивный: треть оругцов, треть помидоров, треть салата рекурсивного.
@beldeveloper
@beldeveloper 4 года назад
Получается, огурцов и помидоров 50%/50%. Но наверняка мы это никогда не узнаем)
@Dima_Dezhin
@Dima_Dezhin 4 года назад
))) Нет вещи столь малой, в которую не вместилась бы ещё меньшая. Нет столь великой вещи, которую не превзошла бы величиною ещё большая. (с) Козьма Прутков
@sergreckhem8086
@sergreckhem8086 4 года назад
@@Dima_Dezhin Элементарные частицы ? - Не , не слышал ))
@Dima_Dezhin
@Dima_Dezhin 4 года назад
@Serg Reckhem фрактальная природа реальности
@abuiman5251
@abuiman5251 Год назад
Спасибо! Здорово объяснили!!))
@ЕвгенийГречишкин-ы4и
очень креативно!!!,
@evgeniyonegin2581
@evgeniyonegin2581 4 года назад
Тимофей, браво, отлично умеете ярко и просто показать рекурсию! Спасибо за ваш труд! # программа на Python, демонстрация матрешек def nesting_doll(num): if num == 1: print ('Цельная матрешка (дно рекурсии)') else: print ('Верхняя часть '+str(num)+' матрешки (прямой ход)') nesting_doll(num - 1) print ('Нижняя часть '+str(num)+' матрешки (обратный ход)') nesting_doll(5) #вызов функции на Питоне """ загрузив ее сюда, можете наслаждаться визуализацией поэтапного ее выполнения www.pythontutor.com/visualize.html """
@exosgame7633
@exosgame7633 5 лет назад
Отличный урок !!!! На столько хорошо объяснил ! ( Правда я на js :) )
@oleksandrhrysha7348
@oleksandrhrysha7348 Год назад
Сказка не только понравилась, но и пример на этой сказке. Мудрое решение. Благодарность за Ваши уроки!!
@kimaller5148
@kimaller5148 3 года назад
Божественно!
@marinaurrey5246
@marinaurrey5246 4 года назад
Очень интересная подача !
@ramanvedov1365
@ramanvedov1365 3 года назад
Здравия! Круто! Так просто объяснить такую сложную тему это талант. Особенно порадовало привлечение народного фольклора. Молодёжи напомнить про корни. Несколько слух резануло слово "безделушки". На самом деле очень глубокий смысл есть в матрёшке. Означает семь наших тел. Непосредственно физическое, самое маленькое, и далее тела духовные. Тонкие материи. Нашим предкам это было известно. Оттуда же и слово "семья" произошло. Сказка "репка" тоже имеет очень глубокий смысл)
@_slash_-
@_slash_- 4 года назад
Обалденно!
@nakhadzakos
@nakhadzakos 5 лет назад
Как на самом простом примере можно узнать сложное
@yakut54
@yakut54 4 года назад
спасибо
@alexsancho9638
@alexsancho9638 3 года назад
spasibo ochen dostupno
@andrewvsk2368
@andrewvsk2368 4 года назад
Рекурсия, пусть на неё фалломорфируют многие всё же плохое решение, особенно в C/C++. Причина во-первых в производительности, т.к. множественные переходы могут в результате оказаться дороже самих вычислений, заканчивая уязвимостью в переполнении стека, особенно это касается ситуаций, когда в перспективе будут использоваться разные устройства, причём эти ошибки сложно или даже невозможно отследить в будущем! В F#, как и в некоторых других функциональных языках компилятор распутывает рекурсию и "за кадром" преобразует её в цикл, C этого НЕ делает по понятным причинам. Рекурсия полезна для теории, т.к. бывает очень выразительная, но для результирующего кода совершенно необходимо преобразовать её в цикл, циклы кстати оптимизируются в gcc в отличие от рекурсий. Особый котёл ждёт тех, кто использует рекурсию в интерпретируемых языках, она и так тормознутая, а с ними может вообще повесить всё намертво (что в итоге часто и случается).
@IT_Shkolnik
@IT_Shkolnik 3 года назад
Если вам не нравится рекурсия по вопросам производительности, то наверно после такой записи вы пойдёте умываться ;) a: printf(“%d”, I++); goto a;
@dimakhodosevich9083
@dimakhodosevich9083 3 года назад
объясните пожалуйста как работает второй вызов функции f(n-1), что-то не понял почему выводит возрастающую последовательность цифр
@753bc9
@753bc9 Год назад
Обычно приводят пример с оружейным магазином (ну, куда патроны всовывают) и патронами. Магазин - это стек. Патроны - это функции. Номера на патронах - это аргументы, т.е. передаваемые функции значения. Представьте, что у вас пистолет и n патронов. Пусть в данном случае n = 7. Вы пронумеровали этот патрон как 7 и поместили его в магазин. Здесь и дальше по тексту поместить патрон = вызвать функцию. А выстрелить = вернуть результат. Следующий патрон у вас будет с номером n - 1, т.е. в данном случае это номер 6. Его вы помещаете в магазин поверх того патрона с номером 7. След. патрон будет n - 1, где n уже равно 6, т.к. предыдущая функция хранит своё значение n, а не первоначальное. Т.е. получается, что третий патрон, который вы поместите в магазин, будет с номером n - 1, т.е. 6 - 1 = 5. И так далее, пока не выполнится заданное условие (оно может быть что-то типа if (n == 1) {Console.WriteLine($"Патрон номер {n}"); return;} Это пример на синтаксисе языка C#. Т.е. вы будете помещать патроны в магазин до тех пор, пока последним патроном не станет тот, который вы пронумеруете единицей. На данный момент картина получается такая: магазин заряжен семью патронами, где патрон с номером 7 находится в самом низу магазина, т.к. его туда поместили самым первым. А самым верхним патроном является патрон с номером 1, потому что он был помещён в магазин самым последним. Заметьте, что всё это время вы только помещали патроны, но не выстреливали. Т.е. функция пока что только вызывала сама себя, но ни разу не возвращала результата. А теперь, когда выполнилось заданное в if условие, вы начинаете выстреливать, т.е. возвращать результат. Когда совершится первый выстрел, патрон с каким номером вылетит? Правильно, с номером один. Т.е. этот патрон был помещён самым последним, а выстрелен самым первым. Так и в вашей программе первым вернётся результат той функции, которая была вызвана последней. Эта функция, которая была вызвана последней, первая возвращает свой результат той функции, которая была вызвана перед ней. Потом следующий выстрел. Вылетает патрон с номером 2. А патрон с номером 2 - это функция, которая была вызвана предпоследней и которой перед этим передался результат выполнения последней вызванной функции (т.е. той, которая вернула патрон с номером 1). И так до конца. Последним выстреленным патроном будет патрон с номером 7. Помещали вы его первым, а выстрелили последним (т.е. функция с этим значением вызывалась первой, а её результат вернулся последним). Этот результат уже вернётся туда, откуда первоначально вызывали данную функцию.
@YouMeNow88
@YouMeNow88 Год назад
@@753bc9 Допустим. Но если нам нужен факториал n числа? То как происходит разворот рекурсии при возврате 1 и как потом идет умножение чисел по порядку по возрастающей? В какой момент происходит этот разворот и как функция понимает что ей нужно умножиться и тд? Вот именно этот момент всем непонятен. Лично я ищу его уже неделю(
@ney107-iz6xl
@ney107-iz6xl Месяц назад
@@YouMeNow88+
@ПавелСтаднюк
@ПавелСтаднюк 2 года назад
Также и на производстве выполнение задания: 1.начальник 10000$, 2.зам 7000$, . . . n.мастер 800$, n+1.работяга 400$. Сам был удивлён когда такое объяснение "зашло" 16-ти летним с первого раза.
@АртурГиниятуллин-ы9о
Объясните кто понимает: почему после того как n стала равна 1, снова вывелось на печать 1, 2, 3... 7. Я понимаю что данные возможно были в стэке, но кто вызвал стэк? И как например сделать рекурсию чтобы не было этого вывода обратно к 7. Если бы это были переменные от задачи, выходит так что задача бы решилась, а потом снова разРешилась)))
@AndeanMusicinMoscow
@AndeanMusicinMoscow 3 года назад
Каждый зверь, как функция
@МихасСупре
@МихасСупре 2 года назад
Теперь каждому понятно)))
@dmitriysavinov9906
@dmitriysavinov9906 3 года назад
Классное видео!
@stariyvoyaka6308
@stariyvoyaka6308 4 года назад
Мышка - "Подержите мое пиво" )))
@pavelzaikin8942
@pavelzaikin8942 4 года назад
Благодарю!!!!
@vasyltopalo8962
@vasyltopalo8962 3 года назад
Спасибо вам большое))))
@Alfadali-k5s
@Alfadali-k5s 9 месяцев назад
you are just super
@nicholasspezza9449
@nicholasspezza9449 8 месяцев назад
indus english
@mutekironin
@mutekironin 2 года назад
👍👍👍
@alisaholainen6334
@alisaholainen6334 3 года назад
Классное объяснение=)
@nikitakozlov373
@nikitakozlov373 3 года назад
print("Лучший преподаватель 'Всея Руси' ")
@l1ps802
@l1ps802 4 месяца назад
Очень похож на динамическое программирование
@vomfegefeuer2614
@vomfegefeuer2614 3 года назад
Не надо ГТО в школах, дайте нам таких преподов по математике как вы!
Далее
Рекурсия в Python
52:13
Просмотров 4,4 тыс.