SlideShare una empresa de Scribd logo
1 de 7
Лекц 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); } }

Más contenido relacionado

La actualidad más candente

Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
Turuu Tsogt
 
U.cs101 алгоритм программчлал-13
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
Badral Khurelbaatar
 
бие даалт № 1 borland c++
бие даалт № 1 borland c++бие даалт № 1 borland c++
бие даалт № 1 borland c++
2011bonus
 
U.cs101 алгоритм программчлал-4-zasah
U.cs101   алгоритм программчлал-4-zasahU.cs101   алгоритм программчлал-4-zasah
U.cs101 алгоритм программчлал-4-zasah
Badral Khurelbaatar
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
Баярсайхан Л
 
Өгөгдлийн бүтэц
Өгөгдлийн бүтэцӨгөгдлийн бүтэц
Өгөгдлийн бүтэц
Muuluu
 

La actualidad más candente (20)

Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
U.cs101 алгоритм программчлал-13
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
 
Unshih hewleh uildel хичээл 3
Unshih hewleh uildel хичээл 3Unshih hewleh uildel хичээл 3
Unshih hewleh uildel хичээл 3
 
Massiv presentation
Massiv presentationMassiv presentation
Massiv presentation
 
бие даалт № 1 borland c++
бие даалт № 1 borland c++бие даалт № 1 borland c++
бие даалт № 1 borland c++
 
Ci prog tolgoi file хичээл 2
Ci prog tolgoi file хичээл 2Ci prog tolgoi file хичээл 2
Ci prog tolgoi file хичээл 2
 
U.cs101 алгоритм программчлал-4-zasah
U.cs101   алгоритм программчлал-4-zasahU.cs101   алгоритм программчлал-4-zasah
U.cs101 алгоритм программчлал-4-zasah
 
C++
C++C++
C++
 
C lects (4)
C lects (4)C lects (4)
C lects (4)
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
 
Smallbasic
SmallbasicSmallbasic
Smallbasic
 
Програмчлалын хэл
Програмчлалын хэлПрограмчлалын хэл
Програмчлалын хэл
 
Өгөгдлийн бүтэц
Өгөгдлийн бүтэцӨгөгдлийн бүтэц
Өгөгдлийн бүтэц
 
It101 1
It101 1It101 1
It101 1
 
Өгөгдлийн бүтэц 1
Өгөгдлийн бүтэц 1Өгөгдлийн бүтэц 1
Өгөгдлийн бүтэц 1
 
Тооллын систем (Number system)
Тооллын систем (Number system)Тооллын систем (Number system)
Тооллын систем (Number system)
 
Programchlaliin c hel
Programchlaliin c helProgramchlaliin c hel
Programchlaliin c hel
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 

Destacado

Lecture 3
Lecture 3Lecture 3
Lecture 3
Muuluu
 
Лекц 11
Лекц 11Лекц 11
Лекц 11
Muuluu
 
1.1 windows server 2003
1.1 windows server 20031.1 windows server 2003
1.1 windows server 2003
Muuluu
 
Лекц 9
Лекц 9Лекц 9
Лекц 9
Muuluu
 
1.2 ad installation
1.2 ad installation1.2 ad installation
1.2 ad installation
Muuluu
 
Лекц 10
Лекц 10Лекц 10
Лекц 10
Muuluu
 
2.1 users & groups
2.1 users & groups2.1 users & groups
2.1 users & groups
Muuluu
 
User account policy
User account policyUser account policy
User account policy
Muuluu
 
2.2 determining trust relationships
2.2 determining trust relationships2.2 determining trust relationships
2.2 determining trust relationships
Muuluu
 
1.2 active directory
1.2 active directory1.2 active directory
1.2 active directory
Muuluu
 
2.1 user practical
2.1 user practical2.1 user practical
2.1 user practical
Muuluu
 
Switch configuration
Switch configurationSwitch configuration
Switch configuration
Muuluu
 
Switch function
Switch functionSwitch function
Switch function
Muuluu
 
Dns server
Dns serverDns server
Dns server
Muuluu
 
Лекц 12
Лекц 12Лекц 12
Лекц 12
Muuluu
 
Лекц 13
Лекц 13Лекц 13
Лекц 13
Muuluu
 
Лекц 11
Лекц 11Лекц 11
Лекц 11
Muuluu
 

Destacado (18)

Lecture 3
Lecture 3Lecture 3
Lecture 3
 
Лекц 11
Лекц 11Лекц 11
Лекц 11
 
1.1 windows server 2003
1.1 windows server 20031.1 windows server 2003
1.1 windows server 2003
 
Лекц 9
Лекц 9Лекц 9
Лекц 9
 
1.2 ad installation
1.2 ad installation1.2 ad installation
1.2 ad installation
 
Лекц 10
Лекц 10Лекц 10
Лекц 10
 
2.1 users & groups
2.1 users & groups2.1 users & groups
2.1 users & groups
 
User account policy
User account policyUser account policy
User account policy
 
2.2 determining trust relationships
2.2 determining trust relationships2.2 determining trust relationships
2.2 determining trust relationships
 
1.2 active directory
1.2 active directory1.2 active directory
1.2 active directory
 
2.1 user practical
2.1 user practical2.1 user practical
2.1 user practical
 
Switch configuration
Switch configurationSwitch configuration
Switch configuration
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Switch function
Switch functionSwitch function
Switch function
 
Dns server
Dns serverDns server
Dns server
 
Лекц 12
Лекц 12Лекц 12
Лекц 12
 
Лекц 13
Лекц 13Лекц 13
Лекц 13
 
Лекц 11
Лекц 11Лекц 11
Лекц 11
 

Más de Muuluu

Basic software
Basic software Basic software
Basic software
Muuluu
 
Wide area networks
Wide area networksWide area networks
Wide area networks
Muuluu
 
NAT and PAT
NAT and PATNAT and PAT
NAT and PAT
Muuluu
 
Spanning tree protocol
Spanning tree protocolSpanning tree protocol
Spanning tree protocol
Muuluu
 
Firewall
FirewallFirewall
Firewall
Muuluu
 
User practical
User practicalUser practical
User practical
Muuluu
 
Active directory
Active directoryActive directory
Active directory
Muuluu
 
Процессорын архитектур
Процессорын архитектурПроцессорын архитектур
Процессорын архитектур
Muuluu
 
6 network devices
6 network devices6 network devices
6 network devices
Muuluu
 
Бие даалт
Бие даалтБие даалт
Бие даалт
Muuluu
 
Лекц 15
Лекц 15Лекц 15
Лекц 15
Muuluu
 
Лекц 14
Лекц 14Лекц 14
Лекц 14
Muuluu
 
Лекц 16
Лекц 16Лекц 16
Лекц 16
Muuluu
 
Лекц 15
Лекц 15Лекц 15
Лекц 15
Muuluu
 
Лекц 14
Лекц 14Лекц 14
Лекц 14
Muuluu
 
Лекц 13
Лекц 13Лекц 13
Лекц 13
Muuluu
 
Лекц 12
Лекц 12Лекц 12
Лекц 12
Muuluu
 
Switch configuration
Switch configurationSwitch configuration
Switch configuration
Muuluu
 

Más de Muuluu (20)

Basic software
Basic software Basic software
Basic software
 
Wide area networks
Wide area networksWide area networks
Wide area networks
 
NAT and PAT
NAT and PATNAT and PAT
NAT and PAT
 
Spanning tree protocol
Spanning tree protocolSpanning tree protocol
Spanning tree protocol
 
Firewall
FirewallFirewall
Firewall
 
User practical
User practicalUser practical
User practical
 
Active directory
Active directoryActive directory
Active directory
 
Hardware
HardwareHardware
Hardware
 
windows server 2003
 windows server 2003 windows server 2003
windows server 2003
 
Процессорын архитектур
Процессорын архитектурПроцессорын архитектур
Процессорын архитектур
 
6 network devices
6 network devices6 network devices
6 network devices
 
Бие даалт
Бие даалтБие даалт
Бие даалт
 
Лекц 15
Лекц 15Лекц 15
Лекц 15
 
Лекц 14
Лекц 14Лекц 14
Лекц 14
 
Лекц 16
Лекц 16Лекц 16
Лекц 16
 
Лекц 15
Лекц 15Лекц 15
Лекц 15
 
Лекц 14
Лекц 14Лекц 14
Лекц 14
 
Лекц 13
Лекц 13Лекц 13
Лекц 13
 
Лекц 12
Лекц 12Лекц 12
Лекц 12
 
Switch configuration
Switch configurationSwitch configuration
Switch configuration
 

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); } }