Једна од централних идеја рачунарства Метода која решавање проблема своди на решавање проблема мање димензије

Σχετικά έγγραφα
2. Наставни колоквијум Задаци за вежбање ОЈЛЕРОВА МЕТОДА

Теорија електричних кола

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Први корак у дефинисању случајне променљиве је. дефинисање и исписивање свих могућих eлементарних догађаја.

Положај сваке тачке кружне плоче је одређен са поларним координатама r и ϕ.

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА МАТЕМАТИКА ТЕСТ

налазе се у диелектрику, релативне диелектричне константе ε r = 2, на међусобном растојању 2 a ( a =1cm

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

1.2. Сличност троуглова

предмет МЕХАНИКА 1 Студијски програми ИНДУСТРИЈСКО ИНЖЕЊЕРСТВО ДРУМСКИ САОБРАЋАЈ II ПРЕДАВАЊЕ УСЛОВИ РАВНОТЕЖЕ СИСТЕМА СУЧЕЉНИХ СИЛА

7. ЈЕДНОСТАВНИЈЕ КВАДРАТНЕ ДИОФАНТОВE ЈЕДНАЧИНЕ

Вектори vs. скалари. Векторске величине се описују интензитетом и правцем. Примери: Померај, брзина, убрзање, сила.

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

РЕШЕЊА ЗАДАТАКА - IV РАЗЕД 1. Мањи број: : x,

5.2. Имплицитни облик линеарне функције

СИСТЕМ ЛИНЕАРНИХ ЈЕДНАЧИНА С ДВЕ НЕПОЗНАТЕ

6.2. Симетрала дужи. Примена

Теорија електричних кола

Анализа Петријевих мрежа

ОБЛАСТИ: 1) Тачка 2) Права 3) Криве другог реда

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

10.3. Запремина праве купе

Упутство за избор домаћих задатака

ЛИНЕАРНА ФУНКЦИЈА. k, k 0), осна и централна симетрија и сл. 2, x 0. У претходном примеру неке функције су линеарне а неке то нису.

г) страница aa и пречник 2RR описаног круга правилног шестоугла јесте рац. бр. јесу самерљиве

Примена првог извода функције

2.3. Решавање линеарних једначина с једном непознатом

1. 2. МЕТОД РАЗЛИКОВАЊА СЛУЧАЈЕВА 1

2. EЛЕМЕНТАРНЕ ДИОФАНТОВЕ ЈЕДНАЧИНЕ

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

4.4. Паралелне праве, сечица. Углови које оне одређују. Углови са паралелним крацима

7.3. Површина правилне пирамиде. Површина правилне четворостране пирамиде

Факултет организационих наука Центар за пословно одлучивање. PROMETHEE (Preference Ranking Organization Method for Enrichment Evaluation)

Tестирање хипотеза. 5.час. 30. март Боjана Тодић Статистички софтвер март / 10

Универзитет у Крагујевцу Факултет за машинство и грађевинарство у Краљеву Катедра за основне машинске конструкције и технологије материјала

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

МАТЕМАТИЧКИ ЛИСТ 2017/18. бр. LII-3

Аксиоме припадања. Никола Томовић 152/2011

Хомогена диференцијална једначина је она која може да се напише у облику: = t( x)

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

МАТРИЧНА АНАЛИЗА КОНСТРУКЦИЈА

Предмет: Задатак 4: Слика 1.0

Универзитет у Београду, Саобраћајни факултет Предмет: Паркирање. 1. вежба

Математички факултет у Београду

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

IV разред. 1. Дешифруј ребус A + BA + CBA + DCBA = Иста слова замени једнаким цифрама, а различита различитим.

Динамика. Описује везу између кретања објекта и сила које делују на њега. Закони класичне динамике важе:

6.5 Површина круга и његових делова

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

6. ЛИНЕАРНА ДИОФАНТОВА ЈЕДНАЧИНА ах + by = c

ВИСОКА ТЕХНИЧКА ШКОЛА СТРУКОВНИХ СТУДИЈА У НИШУ

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ПРИЈЕМНИ ИСПИТ. Јун 2003.

6.3. Паралелограми. Упознајмо још нека својства паралелограма: ABD BCD (УСУ), одакле је: а = c и b = d. Сл. 23

ВОЈИСЛАВ АНДРИЋ МАЛА ЗБИРКА ДИОФАНТОВИХ ЈЕДНАЧИНА

Штампарске грешке у петом издању уџбеника Основи електротехнике, 1. део, Електростатика

b) Израз за угиб дате плоче, ако се користи само први члан реда усвојеног решења, је:

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

3.1. Однос тачке и праве, тачке и равни. Одређеност праве и равни

6.1. Осна симетрија у равни. Симетричност двеју фигура у односу на праву. Осна симетрија фигуре

ТРАПЕЗ РЕГИОНАЛНИ ЦЕНТАР ИЗ ПРИРОДНИХ И ТЕХНИЧКИХ НАУКА У ВРАЊУ. Аутор :Петар Спасић, ученик 8. разреда ОШ 8. Октобар, Власотинце

ЗАШТИТА ПОДАТАКА Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА

Ваљак. cm, а површина осног пресека 180 cm. 252π, 540π,... ТРЕБА ЗНАТИ: ВАЉАК P=2B + M V= B H B= r 2 p M=2rp H Pосн.пресека = 2r H ЗАДАЦИ:

Προγραμματισμό για ΗΜΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

КРУГ. У свом делу Мерење круга, Архимед је први у историји математике одрeдио приближну вред ност броја π а тиме и дужину кружнице.

Осцилације система са једним степеном слободе кретања

1. Функција интензитета отказа и век трајања система

ЕЛЕКТРОНИКЕ ЗА УЧЕНИКЕ ТРЕЋЕГ РАЗРЕДА

ЗБИРКА ЗАДАТАКА ИЗ МАТЕМАТИКЕ СА РЕШЕНИМ ПРИМЕРИМА, са додатком теорије

ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

I Линеарне једначине. II Линеарне неједначине. III Квадратна једначина и неједначина АЛГЕБАРСКЕ ЈЕДНАЧИНЕ И НЕЈЕДНАЧИНЕ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

ТРЕЋЕ ОТВОРЕНО ПРВЕНСТВО СРБИЈЕ У РЕШАВАЊУ ОПТИМИЗАТОРА 29. НОВЕМБАР ДЕЦЕМБАР ГОДИНЕ

Скупови (наставак) Релације. Професор : Рака Јовановић Асиситент : Јелена Јовановић

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο : Επαναλήψεις (for, do-while)

ИЗВОД ИЗ ИЗВЕШТАЈА О ЦЕНАМА КОМУНАЛНИХ УСЛУГА - УДРУЖЕЊЕ ЗА КОМУНАЛНЕ ДЕЛАТНОСТИ -

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

ПОВРШИНа ЧЕТВОРОУГЛОВА И ТРОУГЛОВА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ЗАВОД ЗА УЏБЕНИКЕ БЕОГРАД

МАТЕМАТИЧКИ ЛИСТ 2016/17. бр. LI-4

Нумеричко решавање парцијалних диференцијалних једначина и интегралних једначина

TAЧКАСТА НАЕЛЕКТРИСАЊА

double sum(double a, double b) { return(a+b); } double my_avg(double a, double b) { return(sum(a, b)/2.0); }

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

< < < 21 > > = 704 дана (15 бодова). Признавати било који тачан. бодова), па је тражена разлика 693 (5 бодова), а тражени збир 907(5

6.1. Појам и основни елементи. Углови четвороугла. Централна симетрија. Врсте четвороуглова. B Сл. 1

ЗАШТИТА ПОДАТАКА. Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

2.1. Права, дуж, полуправа, раван, полураван

Писмени испит из Метода коначних елемената

Transcript:

Рекурзија Једна од централних идеја рачунарства Метода која решавање проблема своди на решавање проблема мање димензије Рекурзивна функција (неформално) је функција која у својој дефиницији има позив те исте функције (директно или индиректно) Структура две компоненте: услов рекурзивног позива (и сам рекурзивни позив) и услов изласка из рекурзије (и излазак из рекурзије) Примерена рекурзивно формулисаним проблемима

Рекурзија: пример Формула за рачунање факторијела природног броја (или 0): Итеративна Рекурзивна

Факторијел: итеративна функција int fakti(int n) int i; int r; r=1; for(i=1; i<=n; i++) r=r*i; return r;

Факторијел: рекурзивна функција int faktr(int n) int w; if(n==0) w=1; else w=n*faktr(n-1); return w;

Факторијел: рекурзивна функција Позив функције креира примерак сваке унутрашње (локалне) променљиве Престаје да постоји по завршетку тог активирања (позива) функције Пример: извршавање позива faktr(5)

Извршавање позива faktr(5) faktr(5) w w=5*faktr(4) w w=4*faktr(3) w w=3*faktr(2) w w=2*faktr(1) w w=1*faktr(0) w w=1 return 1 return 1 return 2 return 6 return 24 return 120

Рекурзија: стек Рекурзијом се не штеди меморија Простор за памћење података при рекурзивним позивима функције Стек простор за локалне променљиве и параметре свих функција Меморија се на стеку додељује по LIFO принципу (Last In First Out) Простор се додељује и ослобађа на врху стека, динамички Променљиве из main() Променљиве и параметри функција позваних из main, Променљиве и параметри функција позваних из тих функција итд. По повратку из функције ослобађа се простор за њене податке на стеку

Рекурзија: стек за faktr(5) faktr(0) 0 врх стека w =1 faktr(1)= 1 * 1*faktr(0) w =1 faktr(2)= 2 * 2*faktr(1) w =2 faktr(3)= 3 * 3*faktr(2) w =6 faktr(4)= 4 * 4*faktr(3) w =24 faktr(5)= 5 * 5*faktr(4) w =120

Рекурзија: својства Не повећава брзину извршавања Запис је компактнији Лакши за писање и разумевање Погодан у обради рекурзивно дефинисаних структура података (нпр. листе, стабла)

Рекурзија: примери ЗБИР n Σa i = 0, n=0 i=1 n n-1 Σa i = Σa i + a n, n>0 i=1 i=1

Збир: рекурзивна функција float sum(float a[], unsigned n) if (n == 0) return 0.0f; else return sum(a, n-1) + a[n-1];

Штампање цифара целог броја Једно решење: итеративна функција која рачуна цифре као остатак при целобројном дељењу са 10, од цифре најмање до цифре највеће тежине Друго решење: рекурзивна функција позива саму себе за штампање водећих цифара (цифара количника при дељењу са 10), а затим штампа последњу цифру

Штампање цифара целог броја: рекурзивно решење /* printd: stampa cifre celog broja n */ void printd(int n) if(n<0) putchar( - ); n = -n; if(n/10) printd(n/10); putchar(n%10 + 0 );

Ханојске куле Задатак: дата су три штапа, на првом n дискова различитих пречника, поређаних тако да мањи диск лежи на већем. Треба преместити све дискове на трећи штап уистом поретку, тако што се премешта један по један диск, коришћењем сва три штапа

Ханојске куле Задатак: преместити n дискова као на слици, један по један, коришћењем сва три штапа; диск може да лежи само на већем диску I II III I II III

Ханојске куле: n=2: 1 3 (2) (са 1. на 3. помоћу 2.) n-1: 1 2 1: 1 3 n-1: 2 3

Ханојске куле: n=3: 1 3 (2) n-1: 1 2(3) 1: 1 3 n-1: 2 3(1)

Ханојске куле: n>3 (1 3 (2)) n-1:1 2(3) 1: 1 3 n-1:2 3(1)

Ханојске куле: програм #include <stdio.h> /* prebacuje n diskova sa i-tog na j-ti štap */ void prebaci (int n, int i, int j); void main() int broj; /*broj diskova */ printf( Unesite broj diskova ); scanf( %d, &broj); prebaci(broj, 1, 3); return;

Ханојске куле: функција пребацивања void prebaci(int n, int i, int j) int k; /* odrediti pomoćni štap k */ switch(i+j) case 3: k=3; break; case 4: k=2; break; case 5: k=1; break; if(n==1) printf( Prebaceno sa %d na %d, i, j); else prebaci(n-1, i, k); prebaci(1,i,j); prebaci(n-1, k,j); return;

Ханојске куле: сложеност Број премештања n дискова је 2 n -1, Сложеност алгоритма је експоненцијална (O(2 n ))

Бинарно претраживање Итеративна функција: int binsearch(int x, int b[], int m) int l=0, d=m-1, s; while(l<=d) s=(l+d)/2; if(x<b[s]) d=s-1; else if(x>b[s]) l=s+1; else retrurn s; return-1;

Бинарно претраживање Рекурзивна функција: int binsearchr(int x, int b[], int l, int d) int s; if(l>d) return -1; else s=(l+d)/2; if(x==b[s]) return s; else if(x<b[s]) d=s-1; else l=s+1; return binsearchr(x,b,l,d);

Елиминација репне рекурзије Репна рекурзија: Само један рекурзивни позив Последњи исказ функције Може да се замени GOTO исказом скока на почетак функције

Елиминација репне рекурзије: бинарно претраживање 2 int binsearchr(int x, int b[], int l, int d) int s, bp; if(l>d) return -1; else s=(l+d)/2; if(x==b[s]) return s; else if(x<b[s]) d=s-1; else l=s+1; bp=binsearchr(x,b,l,d); return bp;

Елиминација репне рекурзије: бинарно претраживање корак 2 int binsearchr(int x, int b[], int l, int d) int s; label: if(l>d) return -1; else s=(l+d)/2; if(x==b[s]) return s; else if(x<b[s]) d=s-1; else l=s+1; goto label;

Елиминација репне рекурзије: бинарно претраживање корак 3 int binsearchr(int x, int b[], int l, int d) int s; label: if(d>=l) else return -1; s=(l+d)/2; if(x!=b[s]) if(x<b[s]) d=s-1; else l=s+1; goto label; else return s;

Елиминација репне рекурзије: елиминација goto int binsearchr(int x, int b[], int l, int d) int s; while (d>=l) s=(l+d)/2; if(x!=b[s]) if(x<b[s]) d=s-1; else l=s+1; else return s; return -1;