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

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

Пікірлер: 50

  • @CielLearcen
    @CielLearcen4 жыл бұрын

    Просто гениальное объяснение с репой. Только сейчас понял, что всегда доходим до крайнего случая и вверх по стеку!

  • @vladislavretyunskiy3666
    @vladislavretyunskiy36663 жыл бұрын

    Спасибо Вам огромное! Лучший преподаватель и профессионал!

  • @user-wz6uf3mt1d
    @user-wz6uf3mt1d4 жыл бұрын

    Очень, очень доступно поясняете! Прелестно просто!

  • @helentsvetkova9240
    @helentsvetkova92403 жыл бұрын

    Дед зовёт деда дед зовёт деда дед зовёт деда

  • @phonkabuser3985

    @phonkabuser3985

    3 жыл бұрын

    дед съел деда...

  • @Ryskatel

    @Ryskatel

    3 жыл бұрын

    и здесь политика

  • @drfly4581

    @drfly4581

    3 жыл бұрын

    @@Ryskatel XD

  • @likag.105
    @likag.1054 жыл бұрын

    Замечательное видео. Спасибо Вам.

  • @---ds7je
    @---ds7je3 жыл бұрын

    иногда сложно,но все-таки большое спасибо

  • @user-iq5wx7qq4v

    @user-iq5wx7qq4v

    3 жыл бұрын

    стоит пересмотреть и самому напечатать, тогда более менее уляжется инфа. Она очень крутая!

  • @JuliaNekrusheva
    @JuliaNekrusheva Жыл бұрын

    очень классное объяснение! спасибо!

  • @user-lo2ue9zp7k
    @user-lo2ue9zp7k3 жыл бұрын

    Я уже ставлю лайк до просмотра Ты супер сенсе😊

  • @user-cu1kd8pi2r
    @user-cu1kd8pi2r3 жыл бұрын

    Спасибо Вам!

  • @tigrantovmasyan3078
    @tigrantovmasyan30784 жыл бұрын

    Здравствуйте профессор, у меня возник маленький вопрос, как наша функция понимает что нужно присвоить b именно большую цифру а не малую ,чтобы считать модуль

  • @ancient8341
    @ancient83413 жыл бұрын

    Спасибо большое)

  • @Dr.aku1a
    @Dr.aku1a2 жыл бұрын

    Все четыре случая также решаются циклическим алгоритмом. Кода будет немного больше, но эффективность за счет экономии ресурсов - в разы выше. Как насчёт алгоритмов поиска кратчайшего пути на карте, перебора дерева (посчитать размер папки на диске по размерам файлов в этой папке и всех подчиненных подпапках). А ещё можно рисовать фракталы - как визуальная рекурсия.

  • @jimshtepa5423
    @jimshtepa54232 жыл бұрын

    интересно как реализовать проверку типа вводимого данного с клавиатуры? например если на клавиатуре нажали букву f, то это должно обрабатываться отдельно и выдавать сообщение, что факториал для букв не считается

  • @user-so3tm4iy7y
    @user-so3tm4iy7y4 жыл бұрын

    0 дизлайков вот пример хорошего учителя

  • @obww306

    @obww306

    7 ай бұрын

    oops

  • @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-in9ht6hy7d3 жыл бұрын

    Дед зовет деда - звучит как начало неплохой вечеринки.

  • @Simpaticheskiy
    @Simpaticheskiy Жыл бұрын

    Топ

  • @baby_gun
    @baby_gun3 жыл бұрын

    Салам всем ба(н)ссейнистам

  • @hithrv
    @hithrv3 жыл бұрын

    Тимофей самый крутой!

  • @enikeev_tg
    @enikeev_tg Жыл бұрын

    Два return в функции вычисления факториала не являются нарушением парадигмы структурного программирования? Тут получается, что функция имеет два выхода

  • @allex6829

    @allex6829

    Жыл бұрын

    Условие отделяет return

  • @_mrmark
    @_mrmark Жыл бұрын

    Все классно, но как работает расчет числа Фибоначчи, не дошло до меня пока.

  • @pro100SOm
    @pro100SOm5 жыл бұрын

    Вот никак не ожидал, что Вы на факториале не начнете про тернарник рассказывать! Он же тут красив (в С) и уместен семантически (в данном случае): 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-mj3ti8oy6s4 жыл бұрын

    a0

  • @netlixe7394
    @netlixe7394 Жыл бұрын

    Бабка за деда, внучка за бабку, жучка за внучку, кошка за жучку, мышка за кошку => так мстит сицилийская мафия

  • @tanixtx5298
    @tanixtx52983 жыл бұрын

    Может быть с точки зрения читабельности программы рекурсия и хороша, но для железа это задница т.к. расходуется громадное количество ресурсов памяти под стек для сохранения параметров отложенных вложенных рекурсивных функций (другими словами - засерается память(стек) адресами возврата и сохраненными другими регистрами). В цикле же, например, в случае факториала, будет использовано всего несколько байт под переменные. Соответственно и скорость выполнения будет тоже в разы отличаться.

  • @allex6829

    @allex6829

    Жыл бұрын

    Что за бред? под стек выделено 4 мегабайта памяти, если ты умудришься и их израсходовать, то ты не программист что то явно делаешь не так, руки пообрубать будет проще.

  • @tanixtx5298

    @tanixtx5298

    Жыл бұрын

    @@allex6829 А теперь то же на микроконтроллере где эта память даже не во всех в мегабайтах исчисляется, умник.

  • @allex6829

    @allex6829

    Жыл бұрын

    @@tanixtx5298 Так оставайся на своих микроконтроллерах, управляй отдельными битиками. Хэш функции, деревья, графы, красно черное дерево не для тебя.

  • @user-vt2uc2ew6p
    @user-vt2uc2ew6p7 ай бұрын

    main (int argc, char* argv[ ] )Что это? Зачем? Почему не так main ()?

  • @nicholasspezza9449

    @nicholasspezza9449

    4 ай бұрын

    формальные аргументы функции, Антошка.

  • @jasonvoorhees9310
    @jasonvoorhees93104 жыл бұрын

    Для примеров рекурсии сойдёт, но при оптимизации всё лучше сделать без рекурсии. ИМХО

  • @allex6829

    @allex6829

    Жыл бұрын

    Где-то лучше где-то, без рекурсии бывает даже медленнее или запарное. Если бы рекурсия была не нужна, ее бы исключили, и тогда целиком компьютер проще сжечь

  • @igorfamelio7449
    @igorfamelio74492 жыл бұрын

    Включите на 0.5 будто с бодуна))

  • @saidfrain3371
    @saidfrain33712 жыл бұрын

    В C# тоже знак присваивания это '=' , а знак равенства '=='.

  • @shiftingsandsgames

    @shiftingsandsgames

    Жыл бұрын

    ничего себе))

  • @bocik2854

    @bocik2854

    9 ай бұрын

    Вау

  • @dimalink4486
    @dimalink4486 Жыл бұрын

    Это программирование для школьников до меня только дошло! База!! АААааа!!!! Ну я и дэбил!!! Мне надо повторить нормально все. Просто очень все криво было... в башке и вообще..... Так что да... С этим СИ все равно будешь вечным школьником. Так что нормал!!!!!! Вспомнил школьную тупую шутку - ФРЕДИ ДАУН!! Посреди урока тупость сказать.... Незнаю почему так...