Rеkursiv funksiya tushunchаsi.
Rеkursiv funksiya tushunchаsi hisоblаnuvchi funksiya intuitiv tushunchаsini kоnkrеtlаshtirishning yanа bi usulidir. Rеkursiv funksiyalаr sinfini qurishdа birlаmchi, qаysidir mа’nоdа еng sоddа funksiyalаr tаnlаnаdi. So’ngrа qоidаlаr sistеmаsi qаbul qilinib, ushbu qоidаlаr аsоsidа bоr funksiyalаrdаn yangi funksiyalаrdаn yangi funksiyalаr qurilаdi. Bundаy qоidаlаr оpеrаtоrlаr dеb аtаlаdi. Dеmаk, tаnlаngаn оpеrаtоrlаr yordаmidа еng sоddа funksiyalаrdаn hоsil qilinаdigаn funksiyalаr to’plаmi qidirilgаn funksiyalаr sinfini tаshkil еtаdi.
qаbul qilingаn prinsiplаr аsоsidа rеkursiv funksiyalаr sinfini qurishgа hаrаkаt qilаmiz. Еslаtib o’tishimiz kеrаkki, qurilаyotgаn funksiyalаrning bаrchаsi nаturаl sоnlаr to’plаmidа аniqlаngаn vа nаturаl qiymаtlаrni qаbul qilаdi.
Еng sоddа funksiyalаr sifаtidа quyidаgilаrni tаnlаb оlаmiz: S(x)=x+1; Q(x)=0 (nоlfunksiya); Inm =(xl,x2,...,xn)=xm 1<=m<=n (prоеktоr funksiyalаr);
Yangi funksiyalаrni qurаdigаn оpеrаtоrlаr sifаtidа quyidаgi uchtаsini tаnlаb оlаmiz:
supеrpоzisiya оpеrаtоri;
primitiv rеkursiya оpеrаtоri;
minimizаsiya оpеrаtоri;
Ichma-ich joylashgan siklik algoritmlar.
Ichma-ich joylashgan siklik algoritmlar. Ba’zan, takrorlanuvchi algoritmlar bir nechta parametrlarga bog‘liq bo‘ladi. Odatda bunday algoritmlarni ichma-ich joylashgan algortmlar deb ataladi. Ichma-ich joylashgan takrorlanuvchi jarayonlar asosan ikki va undan yuqori bo’lgan o’lchovli massivlarda kuzatiladi. Misol tariqasi soddaroqi ikki o’lchovli massivni ko’rib chiqamiz.
Bosh.
N, M
i = 1,. N
k = 1,. M
A[i, k]
i = 1,. N
k = 1,. M
A[i, k]
Tamom
Ushbu blok sxemada ikki o’lchovli massivning satri N va ustuni M ga teng bo’lgan massiv kiritlgan va u chop qilingan. Quyida shu blok sxemaning Visual Studio muhiti C++ dasturlash tilidagi kodi keltirilgan:
Undan quyidagicha natija oldim:
Misol sifati berilgan nxm o‘lchovli aij –matritsa elementlarining quyidagicha yig‘indisini hisoblash masalasini qaraylik.
Bu yig‘indi hisoblash uchun, i ning har bir qiymatida j bo‘yicha ko‘paytmani hisoblab, avval yig‘indi ustiga ketma-ket qo‘shib borish kerak bo‘ladi. Bu jarayon quyidagi blok–sxemada aks ettirilgan. Bu yerda i-tashqi sikl - yig‘indi uchun, k-esa ichki sikl-ko‘paytmani hosil qilish uchun foydalanilgan.
Bosh.
N
Tamom.
S=0; i=1;
S
P=1; j=1;
i < n
-
;
+
i = i + 1;
j=j+1;
S = S + p;
j < n
+ -
Microsoft Visual Studio 2012 muhiti C++ dasturlash tilidagi kodi va undan olgan natijam:
Ichma-ich joylashgan siklik algoritmga doir yuqorida blok-sxema keltirilgan. Rekurrent algoritmlar. Hisoblash jarayonida ba’zi bir algoritmlarning o‘ziga qayta murojaat qilishga to‘g‘ri keladi. O‘ziga–o‘zi murojaat qiladigan algoritmlarga rekkurent algoritmlar yoki rekursiya deb ataladi. Bunday algoritmga misol sifatida Fibonachchi sonlarini keltirish mumkin. Ma’lumki, Fibonachchi sonlari quyidagicha aniqlangan. Bu rekkurent ifoda algoritmiga mos keluvchi bloksxema 2.15-rasmda keltirilgan. Eslatib o‘tamiz formuladagi i-indeksga hojat yo‘q, agar Fibonachchi sonining nomerini ham aniqlash zarur bo‘lsa, birorta parametrkalit kiritish kerak bo‘ladi.
Bosh.
N
Tamom
Fibonachchi sonlarining n- hadini hisoblash algoritmi. Amalda shunday bir masalalar uchraydiki, ularda takrorlanishlar soni oldindan berilmagan-noma’lum bo‘ladi. Ammo, bu jarayonni tugatish uchun biror bir shart berilgan bo‘ladi.
|