|
Recursion
|
bet | 1/5 | Sana | 29.03.2024 | Hajmi | 448.16 Kb. | | #181038 |
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; } } - 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
- Recursive amalga oshirish
int Factorial(int n) { 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; } 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)
|
| |