Примеры рекурсивных алгоритмов

  Рет қаралды 56,891

Тимофей Хирьянов

Тимофей Хирьянов

5 жыл бұрын

Факториал числа.
Алгоритм Евклида.
Быстрое возведение в степень.
Числа Фибоначчи.
Курс молодого бойца по информатике (Язык Си).
cs.mipt.ru/c_intro

Пікірлер: 50
@CielLearcen
@CielLearcen 4 жыл бұрын
Просто гениальное объяснение с репой. Только сейчас понял, что всегда доходим до крайнего случая и вверх по стеку!
@user-wz6uf3mt1d
@user-wz6uf3mt1d 4 жыл бұрын
Очень, очень доступно поясняете! Прелестно просто!
@vladislavretyunskiy3666
@vladislavretyunskiy3666 3 жыл бұрын
Спасибо Вам огромное! Лучший преподаватель и профессионал!
@likag.105
@likag.105 4 жыл бұрын
Замечательное видео. Спасибо Вам.
@helentsvetkova9240
@helentsvetkova9240 3 жыл бұрын
Дед зовёт деда дед зовёт деда дед зовёт деда
@phonkabuser3985
@phonkabuser3985 3 жыл бұрын
дед съел деда...
@Ryskatel
@Ryskatel 3 жыл бұрын
и здесь политика
@drfly4581
@drfly4581 3 жыл бұрын
@@Ryskatel XD
@JuliaNekrusheva
@JuliaNekrusheva Жыл бұрын
очень классное объяснение! спасибо!
@user-lo2ue9zp7k
@user-lo2ue9zp7k 3 жыл бұрын
Я уже ставлю лайк до просмотра Ты супер сенсе😊
@Dr.aku1a
@Dr.aku1a 2 жыл бұрын
Все четыре случая также решаются циклическим алгоритмом. Кода будет немного больше, но эффективность за счет экономии ресурсов - в разы выше. Как насчёт алгоритмов поиска кратчайшего пути на карте, перебора дерева (посчитать размер папки на диске по размерам файлов в этой папке и всех подчиненных подпапках). А ещё можно рисовать фракталы - как визуальная рекурсия.
@---ds7je
@---ds7je 3 жыл бұрын
иногда сложно,но все-таки большое спасибо
@user-iq5wx7qq4v
@user-iq5wx7qq4v 3 жыл бұрын
стоит пересмотреть и самому напечатать, тогда более менее уляжется инфа. Она очень крутая!
@user-cu1kd8pi2r
@user-cu1kd8pi2r 3 жыл бұрын
Спасибо Вам!
@daveminion434
@daveminion434 Жыл бұрын
11:50 маленький хак это написать !n При n=0 (If(n==0) - звучит на языке машины: "Если True" ) Если n не = 0 (if(n==0) :"Если False") Если там Flase то ничего не происходит если True то происходит. Если при n=0 написать if(n) то для машины это (Если Flase) если же там другое число то (Если True) А знак "!" меняет True и False местами
@user-in9ht6hy7d
@user-in9ht6hy7d 3 жыл бұрын
Дед зовет деда - звучит как начало неплохой вечеринки.
@ancient8341
@ancient8341 3 жыл бұрын
Спасибо большое)
@tigrantovmasyan3078
@tigrantovmasyan3078 4 жыл бұрын
Здравствуйте профессор, у меня возник маленький вопрос, как наша функция понимает что нужно присвоить b именно большую цифру а не малую ,чтобы считать модуль
@jimshtepa5423
@jimshtepa5423 2 жыл бұрын
интересно как реализовать проверку типа вводимого данного с клавиатуры? например если на клавиатуре нажали букву f, то это должно обрабатываться отдельно и выдавать сообщение, что факториал для букв не считается
@user-so3tm4iy7y
@user-so3tm4iy7y 4 жыл бұрын
0 дизлайков вот пример хорошего учителя
@obww306
@obww306 7 ай бұрын
oops
@Simpaticheskiy
@Simpaticheskiy Жыл бұрын
Топ
@baby_gun
@baby_gun 3 жыл бұрын
Салам всем ба(н)ссейнистам
@enikeev_tg
@enikeev_tg Жыл бұрын
Два return в функции вычисления факториала не являются нарушением парадигмы структурного программирования? Тут получается, что функция имеет два выхода
@allex6829
@allex6829 Жыл бұрын
Условие отделяет return
@hithrv
@hithrv 3 жыл бұрын
Тимофей самый крутой!
@_mrmark
@_mrmark Жыл бұрын
Все классно, но как работает расчет числа Фибоначчи, не дошло до меня пока.
@pro100SOm
@pro100SOm 5 жыл бұрын
Вот никак не ожидал, что Вы на факториале не начнете про тернарник рассказывать! Он же тут красив (в С) и уместен семантически (в данном случае): int factorial(int n) { return n ? n * factorial(n - 1) : 1; }
@tkhirianov
@tkhirianov 5 жыл бұрын
Ну... у меня же не Code Golg. :-) Мне важно дать рекурсивные алгоритмы однородно - чтобы дошло где крайний, где рекуррентный случаи. Вообще рекурсию + тернарный можно было бы обсудить с точки зрения ленивости вычислений. Потому что, если бы Си не был "ленив", вычисления с тернарным таки привели бы к бесконечной рекурсии без крайнего случая. Ещё раз спасибо за ваши комментарии, Александр Ом. Вы у меня прямо как бета-тестер. :-)
@jasonvoorhees9310
@jasonvoorhees9310 4 жыл бұрын
красиво )))
@Cabpca
@Cabpca 4 жыл бұрын
@@tkhirianov объясните, пожалуйста, как функция fast_power по параметрам понимает, что a нужно именно возводить в степень n, а не делить (a на n) или умножать (a на n) и др.?
@garrygaller2853
@garrygaller2853 4 жыл бұрын
@@Cabpca Там все операции явно прописаны - ни о чем догадываться не нужно.
@user-mj3ti8oy6s
@user-mj3ti8oy6s 4 жыл бұрын
a0
@tanixtx5298
@tanixtx5298 3 жыл бұрын
Может быть с точки зрения читабельности программы рекурсия и хороша, но для железа это задница т.к. расходуется громадное количество ресурсов памяти под стек для сохранения параметров отложенных вложенных рекурсивных функций (другими словами - засерается память(стек) адресами возврата и сохраненными другими регистрами). В цикле же, например, в случае факториала, будет использовано всего несколько байт под переменные. Соответственно и скорость выполнения будет тоже в разы отличаться.
@allex6829
@allex6829 Жыл бұрын
Что за бред? под стек выделено 4 мегабайта памяти, если ты умудришься и их израсходовать, то ты не программист что то явно делаешь не так, руки пообрубать будет проще.
@tanixtx5298
@tanixtx5298 Жыл бұрын
@@allex6829 А теперь то же на микроконтроллере где эта память даже не во всех в мегабайтах исчисляется, умник.
@allex6829
@allex6829 Жыл бұрын
@@tanixtx5298 Так оставайся на своих микроконтроллерах, управляй отдельными битиками. Хэш функции, деревья, графы, красно черное дерево не для тебя.
@jasonvoorhees9310
@jasonvoorhees9310 4 жыл бұрын
Для примеров рекурсии сойдёт, но при оптимизации всё лучше сделать без рекурсии. ИМХО
@allex6829
@allex6829 Жыл бұрын
Где-то лучше где-то, без рекурсии бывает даже медленнее или запарное. Если бы рекурсия была не нужна, ее бы исключили, и тогда целиком компьютер проще сжечь
@saidfrain3371
@saidfrain3371 2 жыл бұрын
В C# тоже знак присваивания это '=' , а знак равенства '=='.
@shiftingsandsgames
@shiftingsandsgames Жыл бұрын
ничего себе))
@bocik2854
@bocik2854 9 ай бұрын
Вау
@netlixe7394
@netlixe7394 Жыл бұрын
Бабка за деда, внучка за бабку, жучка за внучку, кошка за жучку, мышка за кошку => так мстит сицилийская мафия
@user-vt2uc2ew6p
@user-vt2uc2ew6p 7 ай бұрын
main (int argc, char* argv[ ] )Что это? Зачем? Почему не так main ()?
@nicholasspezza9449
@nicholasspezza9449 4 ай бұрын
формальные аргументы функции, Антошка.
@igorfamelio7449
@igorfamelio7449 3 жыл бұрын
Включите на 0.5 будто с бодуна))
@dimalink4486
@dimalink4486 Жыл бұрын
Это программирование для школьников до меня только дошло! База!! АААааа!!!! Ну я и дэбил!!! Мне надо повторить нормально все. Просто очень все криво было... в башке и вообще..... Так что да... С этим СИ все равно будешь вечным школьником. Так что нормал!!!!!! Вспомнил школьную тупую шутку - ФРЕДИ ДАУН!! Посреди урока тупость сказать.... Незнаю почему так...
Ханойские башни на Си
12:25
Тимофей Хирьянов
Рет қаралды 77 М.
Адреса и указатели в Си. Адресная арифметика
27:47
Тимофей Хирьянов
Рет қаралды 159 М.
Please be kind🙏
00:34
ISSEI / いっせい
Рет қаралды 55 МЛН
В ДЕТСТВЕ СТРОИШЬ ДОМ ПОД СТОЛОМ
00:17
SIDELNIKOVVV
Рет қаралды 3,9 МЛН
Khóa ly biệt
01:00
Đào Nguyễn Ánh - Hữu Hưng
Рет қаралды 6 МЛН
小女孩把路人当成离世的妈妈,太感人了.#short #angel #clown
00:53
Рекурсия. Репка и матрёшка
18:37
Тимофей Хирьянов
Рет қаралды 116 М.
Отец больших чисел - Numberphile на русском.
15:11
Копирование массива, реверс циклический сдвиг на Си
20:30
Что такое рекурсивные функции? Душкин объяснит
20:45
Душкин объяснит
Рет қаралды 2,2 М.
Самый быстрый алгоритм поиска делителей числа | Информатика ЕГЭ 2023
11:04
ИНФОРМАТИКА ЕГЭ | Онлайн - школа СОТКА
Рет қаралды 4,9 М.
Please be kind🙏
00:34
ISSEI / いっせい
Рет қаралды 55 МЛН