SlideShare a Scribd company logo
Лекц 2
 Тодорхойлолт: Өөрөө өөртөө ханддаг дэд алгоритмыг
рекурсив дэд алгорим гэнэ. Өөрөөр хэлбэл рекурсив
алгоритм нь өөрөө өөрийгөө дуудаж ажиллуулдаг. Өөрөө
өөрийгөө дууддаг дэд алгоритмыг шууд рекурсив алгоритм
гэнэ. Харин 2 дэд алгоритм нэг нэгийгээ дуудсан байж
болно. Үүнийг шууд бус рекурсив алгоритм гэнэ.
Рекурсив алгоритмаар шийдэгдэх аливаа бодлого нь:
1. Уг бодлогыг, түүнтэй ижил боловч түүнээс маш хялбар
бодлогоор сольж дахин тодорхойлох боломжтой байх
2. Шийд нь шууд мэдэгдэж байх эсвэл түүнийг шууд бодож
болох нэг юмуу хэд хэдэн тохиолдол байх. (энэ тохиолдлыг
тухайн бодлогын үндсэн тохиолдол гэнэ.)
3. Хялбар бодлогоор солих үйл ажиллагааг давтаж
хэрэглэхэд уг бодлого түүний үндсэн тохиолдолд заавал хүрдэг
байх.
4. Үндсэн тохиолдлын шийдийг ашиглан анхны
тохиолдлын шийдийг олж болдог байх.
гэсэн 4-н онцлог шинжтэй байна.
Рекурсив аргаар бодогдох бодлогын үндсэн тохиолдол нь шийд
буюу үр дүнг нь шууд мэдэж байгаа болохоор цаашаа
рекурсивээр дахин тодорхойлох шаардлага, боломжгүй тусгай
тохиолдол юм.
Рекурсив тодорхойлолтонд ядаж нэг үндсэн тохиолдол байх
ёстой ба тэр нь дараах хоёр үүрэгтэй байна. Үүнд:
1. Хялбар бодлогод давтан шилжих процессийг төгсгөх нөхцөл
болно. Ер нь бол шууд тодорхойлогдсон үндсэн тохиолдол
байхгүй бол рекурсив алгоритм нь өөрөө өөртөө төгсгөлгүй
ханданахад хүрнэ.
2. Үндсэн тохиолдлын утга нь анхны бодлогын шийдийг
бодож гаргахад ашиглагдах үндсэн нэгж болно.
Фиббоначийн дараалал бол бүхэл тоон дараалал. Фиббоначийн
дараалалын элемент бүр нь өмнөх 2 элементийн нийлбэртэй тэнцүү. Энэ
бол Фиббоначийн дараалал: 0,1,1,2,3,5,8,13,21,34..........................
Фиббоначийн функц Fib(n) нь Fib(n-1) ба Fib(n2) 2 функцээр
тодорхойлогдоно.
Үүнийг ерөнхий тохиолдолд бичвэл
Хэрвээ n=0 буюу n=1 тохиолдолд Fib(n)=n
Хэрвээ n>=2 тохиолдолд Fib(n)= Fib(n-1)+ Fib(n-2)
Жишээлбэл (0+1=1, 1+1=2, 1+2=3, 2+3=5……………………………………………)
•
Эхлээд рекурс ашиглалгүйгээр Фиббоначийн дараалалаас тухайн n тоог
олох алгоритм зохиоё.
#include<conio.h>
#include<stdio.h>
Int Fib(int n);
int n,fib;
main()
{ clrscr();
printf("input any value="); scanf("%d",&n);
printf("result is = %d",fib(n)); } int Fib(int n)
{ int lofib,hifib,fib,x,i;
if (n<=1) return(n);
else lofib=0;
hifib=1;
for (i=2; i<=n; i++)
{ x=lofib;
Lofib=hifib;
Hifib=x+lofib;}
Fib=hifib;
return(fib);
}
Одоо рекурс ашиглан Фиббоначийн дараалалаас тухайн n тоог олох алгоритм зохиоё.
#include<stdio.h>
#include<conio.h>
int n,m;
int fib_rec(int n);
main()
{ clrscr();
printf("input yny value="); scanf("%d",&n);
printf("result is = %d",fib_rec(n));
return(0);
}
int fib_rec(int n)
{ int x,y,fib;
if (n<=1) return(n);
else {x=fib_rec(n-1);
y=fib_rec(n-2);
fib=x+y; fib=x+y;
return(fib); } }

More Related Content

PPTX
лекц №9
PDF
Лекц 10: (Рекурс)
PDF
C cons
ODP
үзүүлэн
PDF
нийгмийн нийтлэг
PDF
DOCX
термодинамикийн Ii хууль
лекц №9
Лекц 10: (Рекурс)
C cons
үзүүлэн
нийгмийн нийтлэг
термодинамикийн Ii хууль

What's hot (20)

PDF
u.cs101 "Алгоритм ба програмчлал" Лекц №7
PPTX
geometr гурвалжин
PPTX
экскурс хичээл
PPTX
ulziijargal төслийн менежмент систем
PDF
U.IT101 Lab 9
DOCX
6 тепераментийн судалгаа )
PPTX
9.эрэмбэлэлтийн аргууд
PPTX
Идэвхтэй сургалтын арга ба явцын үнэлгээ
PPTX
сэтгэл хөдлөл
PPTX
үр жимс тархах
PPTX
8 р анги алгебрын бутархайн нэмэх хасах
PPTX
ярианы найруулгын төрөл
DOCX
Home цэсний командууд
PDF
Data analysis in excel
PPT
хөдөлгөөн
PPTX
давталттай алгоритм
PPTX
багшийн харилцаа, арга зүй сурагчийн сурах хүсэлд нөлөөлөх
PPTX
сургалтын арга гэж юу вэ
PPTX
Cs101 lec8
PDF
тест боловсруулах
u.cs101 "Алгоритм ба програмчлал" Лекц №7
geometr гурвалжин
экскурс хичээл
ulziijargal төслийн менежмент систем
U.IT101 Lab 9
6 тепераментийн судалгаа )
9.эрэмбэлэлтийн аргууд
Идэвхтэй сургалтын арга ба явцын үнэлгээ
сэтгэл хөдлөл
үр жимс тархах
8 р анги алгебрын бутархайн нэмэх хасах
ярианы найруулгын төрөл
Home цэсний командууд
Data analysis in excel
хөдөлгөөн
давталттай алгоритм
багшийн харилцаа, арга зүй сурагчийн сурах хүсэлд нөлөөлөх
сургалтын арга гэж юу вэ
Cs101 lec8
тест боловсруулах
Ad

Viewers also liked (18)

PPTX
Lecture 3
PPTX
Лекц 11
PPT
1.1 windows server 2003
PPTX
Лекц 9
PPT
1.2 ad installation
PPTX
Лекц 10
PPT
2.1 users & groups
PPT
User account policy
PPT
2.2 determining trust relationships
PPT
1.2 active directory
PPT
2.1 user practical
PPT
Switch configuration
PPTX
Lecture 5
PPT
Switch function
DOC
Dns server
PDF
Лекц 12
PDF
Лекц 13
PDF
Лекц 11
Lecture 3
Лекц 11
1.1 windows server 2003
Лекц 9
1.2 ad installation
Лекц 10
2.1 users & groups
User account policy
2.2 determining trust relationships
1.2 active directory
2.1 user practical
Switch configuration
Lecture 5
Switch function
Dns server
Лекц 12
Лекц 13
Лекц 11
Ad

More from Muuluu (20)

PPTX
Өгөгдлийн бүтэц
PDF
Basic software
PPT
Wide area networks
PPT
NAT and PAT
PPT
Spanning tree protocol
DOC
Firewall
PPT
User practical
PPT
Active directory
PDF
Hardware
PPT
windows server 2003
PPTX
Процессорын архитектур
PPTX
6 network devices
PDF
Бие даалт
PPTX
Лекц 15
PPTX
Лекц 14
PDF
Лекц 16
PDF
Лекц 15
PDF
Лекц 14
DOCX
Лекц 13
PPTX
Лекц 12
Өгөгдлийн бүтэц
Basic software
Wide area networks
NAT and PAT
Spanning tree protocol
Firewall
User practical
Active directory
Hardware
windows server 2003
Процессорын архитектур
6 network devices
Бие даалт
Лекц 15
Лекц 14
Лекц 16
Лекц 15
Лекц 14
Лекц 13
Лекц 12

Lecture 2

  • 2.  Тодорхойлолт: Өөрөө өөртөө ханддаг дэд алгоритмыг рекурсив дэд алгорим гэнэ. Өөрөөр хэлбэл рекурсив алгоритм нь өөрөө өөрийгөө дуудаж ажиллуулдаг. Өөрөө өөрийгөө дууддаг дэд алгоритмыг шууд рекурсив алгоритм гэнэ. Харин 2 дэд алгоритм нэг нэгийгээ дуудсан байж болно. Үүнийг шууд бус рекурсив алгоритм гэнэ.
  • 3. Рекурсив алгоритмаар шийдэгдэх аливаа бодлого нь: 1. Уг бодлогыг, түүнтэй ижил боловч түүнээс маш хялбар бодлогоор сольж дахин тодорхойлох боломжтой байх 2. Шийд нь шууд мэдэгдэж байх эсвэл түүнийг шууд бодож болох нэг юмуу хэд хэдэн тохиолдол байх. (энэ тохиолдлыг тухайн бодлогын үндсэн тохиолдол гэнэ.) 3. Хялбар бодлогоор солих үйл ажиллагааг давтаж хэрэглэхэд уг бодлого түүний үндсэн тохиолдолд заавал хүрдэг байх. 4. Үндсэн тохиолдлын шийдийг ашиглан анхны тохиолдлын шийдийг олж болдог байх. гэсэн 4-н онцлог шинжтэй байна.
  • 4. Рекурсив аргаар бодогдох бодлогын үндсэн тохиолдол нь шийд буюу үр дүнг нь шууд мэдэж байгаа болохоор цаашаа рекурсивээр дахин тодорхойлох шаардлага, боломжгүй тусгай тохиолдол юм. Рекурсив тодорхойлолтонд ядаж нэг үндсэн тохиолдол байх ёстой ба тэр нь дараах хоёр үүрэгтэй байна. Үүнд: 1. Хялбар бодлогод давтан шилжих процессийг төгсгөх нөхцөл болно. Ер нь бол шууд тодорхойлогдсон үндсэн тохиолдол байхгүй бол рекурсив алгоритм нь өөрөө өөртөө төгсгөлгүй ханданахад хүрнэ. 2. Үндсэн тохиолдлын утга нь анхны бодлогын шийдийг бодож гаргахад ашиглагдах үндсэн нэгж болно.
  • 5. Фиббоначийн дараалал бол бүхэл тоон дараалал. Фиббоначийн дараалалын элемент бүр нь өмнөх 2 элементийн нийлбэртэй тэнцүү. Энэ бол Фиббоначийн дараалал: 0,1,1,2,3,5,8,13,21,34.......................... Фиббоначийн функц Fib(n) нь Fib(n-1) ба Fib(n2) 2 функцээр тодорхойлогдоно. Үүнийг ерөнхий тохиолдолд бичвэл Хэрвээ n=0 буюу n=1 тохиолдолд Fib(n)=n Хэрвээ n>=2 тохиолдолд Fib(n)= Fib(n-1)+ Fib(n-2) Жишээлбэл (0+1=1, 1+1=2, 1+2=3, 2+3=5……………………………………………) • Эхлээд рекурс ашиглалгүйгээр Фиббоначийн дараалалаас тухайн n тоог олох алгоритм зохиоё.
  • 6. #include<conio.h> #include<stdio.h> Int Fib(int n); int n,fib; main() { clrscr(); printf("input any value="); scanf("%d",&n); printf("result is = %d",fib(n)); } int Fib(int n) { int lofib,hifib,fib,x,i; if (n<=1) return(n); else lofib=0; hifib=1; for (i=2; i<=n; i++) { x=lofib; Lofib=hifib; Hifib=x+lofib;} Fib=hifib; return(fib); }
  • 7. Одоо рекурс ашиглан Фиббоначийн дараалалаас тухайн n тоог олох алгоритм зохиоё. #include<stdio.h> #include<conio.h> int n,m; int fib_rec(int n); main() { clrscr(); printf("input yny value="); scanf("%d",&n); printf("result is = %d",fib_rec(n)); return(0); } int fib_rec(int n) { int x,y,fib; if (n<=1) return(n); else {x=fib_rec(n-1); y=fib_rec(n-2); fib=x+y; fib=x+y; return(fib); } }