• Buni dasturga aylantirganingizda, siz ozlarini chaqiradigan funktsiyalarga ega bolasiz( recursiv funksiyalar )
  • } Muammolar rekursiv tarzda aniqlanadi
  • Faktorialni hisoblash dasturi
  • Recursion




    Download 448.16 Kb.
    bet1/5
    Sana29.03.2024
    Hajmi448.16 Kb.
    #181038
      1   2   3   4   5
    Bog'liq
    Recursion
    Arab harflari, 6-amaliy ish Mavzu Tarmoqlararo ekran vositasi yordamida tarmoq, O`zbekiston respublikasi oliy va o`rta maxsus ta`lim vazirligi t, KHUSHBOKOVA GULIMOH, Mavzu Milliy mafkuraning o’quvchi yoshlar ongi va qalbiga singd, Releli himoya va avtomatika, 1-Mavzu, smart-texnologiyalari-va-ulardan-foydalanish, Muhammadqodir, mashinali o\'qitish 1-mustaqil ish, 1710380917, algoritmlash 2

    Rekursiya

    Rekursiya nima?

    • Ba'zida muammoni hal qilishning eng yaxshi yo'li birinchi navbatda aynan bir xil muammoning kichikroq versiyasini hal qilishdir
    • Rekursiya - bu bir xil turdagi kichikroq masalani yechish orqali muammoni hal qiladigan texnikadir

    Buni dasturga aylantirganingizda, siz o'zlarini chaqiradigan funktsiyalarga ega bo'lasiz(recursiv funksiyalar)

    int f(int x)

    {

    int y;

     

    if(x==0)

    return 1;

    else {

    y = 2 * f(x-1);

    return y+1;

    }

    }

    Muammolar rekursiv tarzda aniqlanadi

    • Yechimini rekursiv tarzda aniqlash mumkin bo'lgan ko'plab muammolar mavjud Misol: n factorial

    1 if n = 0
    n!= (recursive yechim)
    (n-1)!*n if n > 0
    1 if n = 0
    n!= (oddiy yechim)
    1*2*3*…*(n-1)*n if n > 0

    Faktorialni hisoblash dasturi

    • Recursive amalga oshirish
    • int Factorial(int n)

      {

      if (n==0) // base case

      return 1;

      else

      return n * Factorial(n-1);

      }

    Faktorialni hisoblash dasturi(cont.)

    • Iterative amalga oshirish
    • int Factorial(int n)

      {

      int fact = 1;

       

      for(int count = 2; count <= n; count++)

      fact = fact * count;

       

      return fact;

      }

    Boshqa misol: n choose k (combinations)

    • n ta narsa berilgan bo‘lsa, k o‘lchamdagi nechta turli to‘plamni tanlash mumkin?
    • n n-1 n-1

      = + , 1 < k < n (recursive solution)

      k k k-1

      n n!

      = , 1 < k < n (closed-form solution)

      k k!(n-k)!

      with base cases:

      n n

      = n (k = 1), = 1 (k = n)

      1 n

    n choose k (combinations)


    Download 448.16 Kb.
      1   2   3   4   5




    Download 448.16 Kb.