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

Sdílet
Vložit
  • čas přidán 12. 08. 2018
  • Факториал числа.
    Алгоритм Евклида.
    Быстрое возведение в степень.
    Числа Фибоначчи.
    Курс молодого бойца по информатике (Язык Си).
    cs.mipt.ru/c_intro

Komentáře • 50

  • @CielLearcen
    @CielLearcen Před 4 lety +13

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

  • @user-wz6uf3mt1d
    @user-wz6uf3mt1d Před 4 lety +12

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

  • @vladislavretyunskiy3666
    @vladislavretyunskiy3666 Před 3 lety +6

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

  • @helentsvetkova9240
    @helentsvetkova9240 Před 3 lety +17

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

  • @likag.105
    @likag.105 Před 4 lety +4

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

  • @JuliaNekrusheva
    @JuliaNekrusheva Před rokem

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

  • @user-lo2ue9zp7k
    @user-lo2ue9zp7k Před 3 lety

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

  • @user-cu1kd8pi2r
    @user-cu1kd8pi2r Před 3 lety

    Спасибо Вам!

  • @---ds7je
    @---ds7je Před 3 lety +13

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

    • @user-iq5wx7qq4v
      @user-iq5wx7qq4v Před 3 lety +1

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

  • @user-in9ht6hy7d
    @user-in9ht6hy7d Před 3 lety +7

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

  • @Dr.aku1a
    @Dr.aku1a Před 2 lety

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

  • @ancient8341
    @ancient8341 Před 3 lety

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

  • @tigrantovmasyan3078
    @tigrantovmasyan3078 Před 4 lety +2

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

  • @daveminion434
    @daveminion434 Před rokem +1

    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 местами

  • @jimshtepa5423
    @jimshtepa5423 Před 2 lety

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

  • @Simpaticheskiy
    @Simpaticheskiy Před rokem

    Топ

  • @user-so3tm4iy7y
    @user-so3tm4iy7y Před 4 lety +8

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

  • @enikeev_tg
    @enikeev_tg Před rokem

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

    • @allex6829
      @allex6829 Před rokem

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

  • @baby_gun
    @baby_gun Před 3 lety +3

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

  • @hithrv
    @hithrv Před 3 lety +1

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

  • @_mrmark
    @_mrmark Před rokem

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

  • @pro100SOm
    @pro100SOm Před 5 lety +4

    Вот никак не ожидал, что Вы на факториале не начнете про тернарник рассказывать! Он же тут красив (в С) и уместен семантически (в данном случае):
    int factorial(int n) {
    return n ? n * factorial(n - 1) : 1;
    }

    • @tkhirianov
      @tkhirianov  Před 5 lety +20

      Ну... у меня же не Code Golg. :-)
      Мне важно дать рекурсивные алгоритмы однородно - чтобы дошло где крайний, где рекуррентный случаи.
      Вообще рекурсию + тернарный можно было бы обсудить с точки зрения ленивости вычислений. Потому что, если бы Си не был "ленив", вычисления с тернарным таки привели бы к бесконечной рекурсии без крайнего случая.
      Ещё раз спасибо за ваши комментарии, Александр Ом. Вы у меня прямо как бета-тестер. :-)

    • @jasonvoorhees9310
      @jasonvoorhees9310 Před 4 lety

      красиво )))

    • @Cabpca
      @Cabpca Před 4 lety

      @@tkhirianov объясните, пожалуйста, как функция fast_power по параметрам понимает, что a нужно именно возводить в степень n, а не делить (a на n) или умножать (a на n) и др.?

    • @garrygaller2853
      @garrygaller2853 Před 4 lety

      @@Cabpca Там все операции явно прописаны - ни о чем догадываться не нужно.

  • @user-mj3ti8oy6s
    @user-mj3ti8oy6s Před 4 lety

    a0

  • @tanixtx5298
    @tanixtx5298 Před 3 lety +1

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

    • @allex6829
      @allex6829 Před rokem

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

    • @tanixtx5298
      @tanixtx5298 Před rokem +1

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

    • @allex6829
      @allex6829 Před rokem +2

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

  • @netlixe7394
    @netlixe7394 Před rokem

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

  • @user-vt2uc2ew6p
    @user-vt2uc2ew6p Před 8 měsíci

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

    • @nicholasspezza9449
      @nicholasspezza9449 Před 5 měsíci +1

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

  • @jasonvoorhees9310
    @jasonvoorhees9310 Před 4 lety +3

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

    • @allex6829
      @allex6829 Před rokem

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

  • @saidfrain3371
    @saidfrain3371 Před 2 lety

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

  • @igorfamelio7449
    @igorfamelio7449 Před 3 lety

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

  • @dimalink4486
    @dimalink4486 Před rokem

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