SS SD Orice definiţie recursivă are două părţi: baza sau partea nerecursivă partea recursivă

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "SS SD Orice definiţie recursivă are două părţi: baza sau partea nerecursivă partea recursivă"

Transcript

1 II. Recursivitate. Definiţii recursive. O definiţie recursivă foloseşte termenul de definit în corpul definiţiei. O funcţie poate fi recursivă, adică se poate apela pe ea însăşi, în mod direct sau indirect, printr un lanţ de apeluri. /* apel recursiv direct */ void f(int x) {... f(10);... /* apel recursiv indirect */ void f2(int); /* declaratie anticipata f2 void f1(int x) void f2(int y) {... {... f2(10); f1(20); În cazul recursivităţii indirecte, compilatorul trebuie să verifice corectitudinea apelurilor recursive din fiecare funcţie. O declarare anticipată a prototipurilor funcţiilor oferă informaţii suficiente compilatorului pentru a face verificările cerute. Exemple numărul natural 1 N dacă x N atunci succ(x) N 2 0. factorialul n!= 1 dacă n=0 n*(n 1)! dacă n > 0 long fact(int n) { return (n? n*fact(n 1) : 1); 3 0. cel mai mare divizor comun cmmdc(a, b)= a dacă b=0 cmmdc(b, a%b) dacă b > 0 int cmmdc(int a, int b) { return (b? cmmdc(b, a%b) : a); 4 0. arborele binar arborele vid este arbore binar x este arbore binar, cu SS şi SD arbori binari SS SD Orice definiţie recursivă are două părţi: baza sau partea nerecursivă partea recursivă 1

2 Codul recursiv: rezolvă explicit cazul de bază apelurile recursive conţin valori mai mici ale argumentelor Funcţiile definite recursiv sunt simple şi elegante. Corectitudinea lor poate fi uşor verificată. Definirea unor funcţii recursive conduce la ineficienţă, motiv pentru care se evită, putând fi înlocuită întotdeauna prin iteraţie. Definirea unor funcţii recursive este justificată dacă se lucrează cu structuri de date definite tot recursiv. Recursivitate liniară. Este forma cea mai simplă de recursivitate şi constă dintr un singur apel recursiv. De exemplu pentru calculul factorialului avem: f(0)=1 f(n)=n*f(n-1) cazul de bază cazul general Se vede că dacă timpul necesar execuţiei cazului de bază este a şi a cazului general este b, atunci timpul total de calcul este: a+b*(n 1) = O(n), adică avem complexitate liniară. Recursivitate binară. Recursivitatea binară presupune existenţa a două apeluri recursive. Exemplul tipic îl constituie şirul lui Fibonacci: long fibo(int n) { if(n<=2) return 1; return fibo(n 1) +fibo(n 2); Funcţia este foarte ineficientă, având complexitate exponenţială, cu multe apeluri recursive repetate. Se poate înlocui dublul apel recursiv printr un singur apel recursiv. Pentru aceasta ţinem seama că dacă a, b şi c sunt primii 3 termeni din şirul Fibonacci, atunci calculul termenul situat la distanţia n în raport cu a, este situat la distanţa n 1 faţă de termenul următor b. Necesitatea cunoaşterii termenului următor impune prezenţa a doi termeni în lista de parametri. long f(long a, long b, int n) { if(n<=1) return b; return f(b, a+b, n 1); long fiblin(int n) { f(0, 1, n); Algoritmul rezultat are complexitate liniară. Complexitatea algoritmului poate îmbunătăţi şi mai mult observând că: f n + 1 f n f f n n / 1 = n 2

3 De unde deducem: f 2n =f n+1 f n +f n f n 1 =f n (f n+1 +f n 1 )=f n (f n +2f n 1 ) f 2n 1 =f 2 n+f 2 n 1 Calculul lui f n se face folosind prima sau a doua dintre relaţiile de mai sus în funcţie de paritatea lui n (dacă n este par atunci calculul lui f(n) presupune calculul lui f(n/2) şi f(n/2 1), altfel f((n 1)/2)şi f((n+1)/2) void fiblog(int n, long *f1, long *f2) { long a, b, c, d; if(n==1){ *f1 = 0; *f2 = 0; { fiblog(n/2, &a, &b); c = a*a+b*b; d = b*(b+2*a); if(n%2) { *f1 = d; *f2 = c+d; { *f1 = c; *f2 = d; 3

4 Metoda divizării (Divide et Impera). Un algoritm recursiv obţine soluţia problemei prin rezolvarea unor instanţe mai mici ale aceleeaşi probleme. se împarte problema în subprobleme de aceeaşi natură, dar de dimensiune mai scăzută se rezolvă subproblemele obţinându se soluţiile acestora se combină soluţiile subproblemelor obţinându se soluţia problemei Ultima etapă poate lipsi (în anumite cazuri), soluţia problemei rezultând direct din soluţiile subproblemelor. Procesul de divizare continuă şi pentru subprobleme, până când se ajunge la o dimensiune suficient de redusă a problemei care să permită rezolvarea printr o metodă directă. Metoda divizării se exprimă natural în mod recursiv: rezolvarea problemei constă în rezolvarea unor instanţe ale problemei de dimensiuni mai reduse void DivImp(int dim, problema p, solutie *s){ int dim1, dim2; problema p1, p2; solutie s1, s2; if(dim > prag){ Separa(dim,p,&dim1,&p1,&dim2,&p2); DivImp(dim1, p1, &s1); DivImp(dim2, p2, &s2); Combina(s1, s2, s); RezDirect(dim, p, s); Pentru evaluarea complexităţii unui algoritm dezvoltat prin metoda divide et impera se rezolvă o ecuaţie recurentă având forma generală: T(n)=a.T(n/b) + f(n), în care a >= 1, reprezintă numărul subproblemelor, iar n/b este dimensiunea subproblemelor, b > 1. f(n) reprezintă costul divizării problemei în subprobleme şi a combinării soluţiilor subproblemelor pentru a forma soluţia problemei. Soluţia acestei ecuaţii recurente este dată de teorema master 1 0 log.dacă f(n) O(n b a ε log a = ) atunci T(n) = Θ(n b ) 2 0.dacă log a f(n) = Θ(n b ) atunci 3 0. dacă log f(n) ( n b a + ε = Ω ) şi atunci Exemple Ridicarea unui număr la o putere întreagă. T(n) = O(n log b a a f(n / b) c f(n), c < T( n ) = lg 1 n) Θ( f ( n )) x = x x x n / 2 n / 2 n x n / 2 n / 2 x pentru x pentru x par impar 4

5 double putere(double x, int n) { if (n==0) return 1; double y = putere(x, n/2); if (n%2==0) return y*y; return x*y*y; Se constată că în urma separării se rezolvă o singură subproblemă de dimensiune n/2. Aşadar: T(n)= T(n/2)+1, care are soluţia T(n)=O(log 2 n). Căutarea binară se compară valoarea căutată y cu elementul din mijlocul tabloului x[m] dacă sunt egale, elementul y a fost găsit în poziţia m în caz contrar se continuă căutarea într una din jumătăţile tabloului (în prima jumătate, dacă y<x[m] sau în a doua jumătate dacă y>x[m]). Funcţia întoarce poziţia m a valorii y în x sau 1, dacă y nu se află în x. Complexitatea este O(log 2 n) int CB(int i, int j, double y, double x[]) { if(i > j) return 1; double m = (i+j)/2; if(y == x[m]) return m; if(y < x[m]) return CB(i, m 1, y, x); return CB(m+1, j, y, x); int CautBin(int n, double x[], double y){ if(n==0) return 1; return CB(0, n 1, y, x); Localizarea unei rădăcini prin bisecţie Localizarea unei rădăcini a ecuaţiei f(x)=0, separată într un interval [a, b] prin bisecţie este un caz particular de căutare binară. Deoarece se lucrează cu valori reale, comparaţia de egalitate se evită. double Bis(double a, double b, double (*f)(double)){ double c = (a+b)/2; if(fabs(f(c))< EPS b a < EPS) return c; if(f(a)*f(c) < 0) return Bis(a, c, f); return Bis(c, b, f); 5

6 Elementul maxim dintr un vector Aplicarea metodei divizării se bazează pe observaţia că maximul este cea mai mare valoare dintre maximele din cele două jumătăţi ale tabloului. double max(int i, int j, double *x){ double m1, m2; if(i==j) return x[i]; if(i==j-1) return ( x[i]>x[j]? x[i]:x[j];); int k = (i+j)/2; m1 = max(i, k, x); m2 = max(k+1, j, x); return (m1>m2)? m1: m2; Turnurile din Hanoi Se dau 3 tije:stânga, centru, dreapta; pe cea din stânga sunt plasate n discuri cu diametre descrescătoare, formând un turn. Generaţi mutările care deplasează turnul de pe tija din stânga pe cea din dreapta. Se impun următoarele restricţii: la un moment dat se poate muta un singur disc nu se permite plasarea unui disc de diametru mai mare peste unul cu diametrul mai mic una din tije serveşte ca zonă de manevră. Problema mutării celor n discuri din zona sursă în zona destinaţie poate fi redusă la două subprobleme: mutarea a n-1 discuri din zona sursă în zona de manevră, folosind zona destinaţie ca zonă de manevră mutarea a n-1 discuri din zona de manevră în zona destinaţie, folosind zona sursă ca zonă de manevră Între cele două subprobleme se mută discul rămas în zona sursă în zona destinaţie void Hanoi(int n,char s,char m,char d){ if(n) { Hanoi(n-1, s, d, m); Printf( %d -> %d\n, s, d); Hanoi(n-1, m, s, d); Avem satisfăcută ecuaţia recurentă: T(n) = 2.T(n-1) + 1, care se rescrie: T(n)=2 2 T(n 2)+1)+1=2 2 T(n 2)+2+1=2 3 T(n 3) = 2 n 1 T(1) +2 n T(n)=2 n =2 n 1=O(2 n ) Sortarea prin interclasare (mergesort) Şirul de sortat se împarte în două subşiruri de dimensiune pe cât posibil egală. Se sortează subşirurile (divizându le recursiv în alte subşiruri, până când se ajunge la subşiruri de lungime 1, care sunt gata sortate). Subşirurile sortate se recombină într un singur şir sortat prin interclasare. void merge(int, int, int, double*); 6

7 void msort(int, int, double*); void mergesort(int n, double *x){ msort(0, n-1, x); void msort(int i, int j, double *x){ if(i<j){ int k=(i+j)/2; msort(i, k-1, x); msort(k, j, x); merge(i, k, j, x); void merge(int p, int q, int r, double *x){ int i=p, j=q, k=0; double *y = (double*)malloc((r-p+1)*sizeof(double)); while(i<q && j<=r) if(x[i] < x[j]) y[k++] = x[i++]; y[k++] =x[j++]; while(i < q) y[k++] = x[i++]; while(j <= r) y[k++] = x[j++] ; for(i=p; i<=r; i++) x[i] = y[i-p]; free(y); Interclasarea subşirurilor are complexitate liniară O(n). Sortarea prin interclasare se bazează pe ecuaţia recurentă: T(n)= 2.T(n/2)+c.n cu soluţia T(n)=Θ(n.log 2 n) Partiţionare Partiţionarea unui vector în raport cu un pivot, presupune separarea vectorului în două zone (partiţii) astfel încât prima partiţie să conţină elementele <= cu pivotul, iar cea de a doua partiţie, elementele mai mari ca pivotul. Considerăm un vector x între doi indici p şi r. Pivotul poate fi oricare element al şirului x; noi vom alege ca pivot pe x[p](primul element). Iniţial partiţiile sunt vide; ele se extind (spre dreapta, respectiv spre stânga), până când se vor atinge. Extinderea unei partiţii este împiedicată de prezenţa unui element care nu aparţine partiţiei. În momentul în care se blochează extinderea ambelor partiţii se interschimbă elementele străine partiţiilor, după care extinderea partiţiilor continuă până la atingere. Funcţia întoarce poziţia primului element din cea de a doua partiţie. int pivot(double *x, int p, int r){ double piv = x[p]; // alegere pivot int i = p-1; int j = r+1; double t; while(1){ do { i++; while (x[i]<=piv); 7

8 do { j--; while (x[j]>=piv); if(i < j){ t=x[i]; x[i]=x[j]; x[j]=t; return j; Cel de al N lea element. O metodă evidentă de găsire a celui de al N lea element ar fi sortarea vectorului şi selectarea elementului din poziţia N, cu complexitate O(n log 2 n). O metodă având o complexitate mai mică partiţionează vectorul în raport cu un pivot. Dacă primul element din cea de a doua partiţie este în poziţia j==n, atunci elementele primei partiţii sunt mai mici sau egale cu acesta, deci elementul reprezintă cel de al N lea element; dacă j > N cel de al N lea element se află în prima partiţie deci va fi căutat recursiv în domeniul (p, j), în caz contrar el se află în cea de a doua partiţie, fiind căutat recursiv în domeniul (j, r). double elementn(double* v,int N,int p, int r){ int j = pivot(v, p, r); if(j==n) return v[n]; if(n<j) return elementn(v, N, p, j); return elementn(v, N, j+1, r); Sortarea rapidă (quicksort). Algoritmul de sortare rapidă, datorat lui Hoare, partiţionează vectorul de sortat, în raport cu un pivot. Cele două partiţii sunt sortate, la rândul lor, prin apeluri recursive. Astfel şirul x[p:r] este partiţionat în subşirurile x[p:q] şi x[q+1:r] astfel încât orice element din prima partiţie x[p:q] este mai mic sau egal cu un element din cea de a doua partiţie x[q+1:r]. În final şirul, în ansamblu, este sortat deoarece partiţiile lui sunt sortate. void QS(int, int, double*); void quicksort(int n, double *x) { QS(0, n-1, x); void QS(int p, int r, double *x){ if(p<r){ int q = pivot(x, p, r); QS(p, q, x); QS(q+1, r, x); void qsort(int n, double* v){ if(n>1) QS(0, n-1, v); 8

9 Complexitatea algoritmului de partiţionare este O(n). Complexitatea algoritmului de sortare depinde de echilibrarea partiţiilor. Dacă partiţiile sunt dezechilibrate (în cazul cel mai nefavorabil, în care şirul este sortat descrescător cele două partiţii sunt de 1, respectiv n-1 elemente), atunci complexitatea este O(n 2 ). Înlăturarea recursivităţii. În general recursivitatea nu este eficientă. De exemplu generarea recursivă a termenilor şirului Fibonacci are complexitate exponenţială, în timp ce soluţia iterativă are complexitate liniară. Algoritmii formulaţi folosind strategia divide et impera sunt eficienţi dacă subproblemele sunt de dimensiuni aproape egale.(pentru subprobleme cu dimensiuni dezechilibrate de exemplu turnurile din Hanoi, se obţine tot complexitate exponenţială). Se preferă soluţii recursive în situaţiile în care varianta iterativă conduce la algoritmi foarte complicaţi. Recursivitatea poate întotdeauna fi transformată în iteraţie. În acest scop se foloseşte o stivă. Dacă funcţia conţine un singur apel recursiv şi acesta este ultima instrucţiune (recursivitate terminală) transformarea recursivităţii în iteraţie presupune următorii paşi: o se transcrie partea nerecursivă, cu parametrii curenţi şi variabilele locale o se actualizează variabilele şi parametrii corespunzător noii iteraţii o se efectuează un salt la începutul părţii iterative Exemplificăm cu afişarea elementelor unei liste înlănţuite: struct nodl { int info; struct nodl* leg; ; void afisare(struct nodl* L) { if(l){ printf( %d\n, L->info); afisare(l->leg); void afisare(struct nodl* L){ label 1; 1:if(L){ printf( %d\n, L->info); L = L->leg; goto 1; Desfinţăm saltul necondiţionat goto folosind un ciclu while: void afisare(struct nodl* L) { 9

10 while(l){ printf( %d\n, L->info); L = L->leg; Dacă funcţia conţine un singur apel recursiv, care nu este terminal, vom folosi o stivă în care se pun parametrii şi variabilele locale. Varianta iterativă a algoritmului recursiv este: while(se fac apeluri recursive) { partea nerecursiva care precede apelul; Push(S, parametri); Push(S, variabile locale); actualizare param.si var.locale pt.urmatorul apel; while(!s_empty(s)){ Pop(S); parte nerecursiva de dupa apelul recursiv; Definim o funcţie recursivă care afişează elementele dintr o listă înlănţuită şi apoi face afişarea elementelor în ordine inversă, începând cu ultimul: void afisare(nodl* L) { if(l){ printf( %d-, L->info); afisare(l->leg); printf( %d\n, L->info); O variantă iterativă este: void afisare(nodl* L) { Stiva S; while(l){ printf( %d-, L->info); Push(L, S); L=L->leg; while(!s_empty(s)){ L=Pop(S); printf( %d\n, L->info); 10

11 Metoda Backtracking. Metoda backtracking reprezintă una dintre metodele cele mai generale pentru determinarea soluţiilor unei probleme. Pentru aplicarea metodei este necesar ca soluţia problemei să se exprime printr un n tuplu (x 1,x2,,xn), în care xi Si, Si fiind o mulţime finită, izomorfă cu mulţimea {1:m. Aceste condiţii poartă numele de restricţii (sau condiţii) explicite, iar tuplii care satisfac restricţiile explicite (produsul cartezian S 1 x S 2 x x S n) definesc spaţiul soluţiilor problemei. De exemplu, pentru generarea permutărilor de n obiecte, mulţimile Si={1:n permit formarea a n n tupli care definesc spaţiul soluţiilor. O soluţie vector trebuie să satisfacă o funcţie criteriu P(x1,...,xn), cunoscută şi sub numele de restricţii (sau condiţii) implicite. n n n Generarea tuturor tuplilor produsului cartezian S i = mi = m i = 1 i = 1 şi selectarea celor care satisfac restricţiile implicite, cunoscută sub numele de metoda forţei brute, nu este aplicabilă, datorită complexităţii exponenţiale şi lipsei oricărei posibilităţi de optimizare. Restricţiile implicite acţionează ca o funcţie de tăiere (limitare), reducând dimensiunea spaţiului soluţiilor problemei, fără a genera toţi tuplii. De exemplu, în generarea permutărilor există restricţia implicită ca elementele vectorului soluţie să fie distincte, ceea ce reduce numărul posibilităţilor (soluţiilor) la n!. Restricţiile explicite definesc un arbore (implicit) al spaţiului soluţiilor. O soluţie reprezintă o cale de la nodul rădăcină la un nod terminal. Căutarea în spaţiul stărilor presupune traversarea acestui arbore. În metoda backtracking, această traversare se face în adâncime. Metoda backtracking generează soluţia în mod progresiv, adăugând la soluţia parţială, x 1,...,x k 1 o componentă x k, astfel încât soluţia parţială extinsă să satisfacă o condiţie implicită, cunoscută sub numele de condiţie de continuare. P(x 1,...,x k) În generarea stărilor problemei se porneşte din starea iniţială (nodul rădăcină) şi se generează alte noduri. Un nod generat poartă numele de nod viu, dacă nu i au fost generaţi încă toţi descendenţii. Aşadar, am putea defini metoda backtracking ca o generare de noduri în adâncime în arborele spaţiului stărilor soluţiilor, folosind funcţii de limitare. Complexitatea metodei rămâne exponenţială, eficienţa ei depinzând în mod semnificativ de eficienţa funcţiilor de tăiere. Datorită complexităţii exponenţiale, metoda backtracking se foloseşte numai în situaţiile în care nu dispunem de alte metode generarea permutărilor de n obiecte generarea tuturor plasărilor a 8 dame pe o tablă de şah, astfel încât să nu se atace determinarea tuturor posibilităţilor de plată a unei sume, folosind anumite tipuri de bancnote determinarea tuturor posibilităţilor de sortare topologică a vârfurilor unui graf Găsirea unui arbore de acoperire de cost minim într un graf ponderat se determină eficient prin algoritmii greedy Prim şi Kruskal. Găsirea tuturor arborilor de acoperire poate fi făcută numai prin backtracking. Dintre toate soluţiile unei probleme de optimizare, prezintă interes numai cele care extremizează (maximizează sau minimizează) o funcţie de cost (sau funcţie obiectiv) ca de exemplu: 11

12 găsirea tuturor căilor de lungime minimă, de ieşire dintr un labirint colorarea vârfurilor unui graf folosind un număr minim de culori găsirea ciclurilor hamiltoniene de cost minim într un graf ponderat debitarea unei bare după nişte repere date, astfel încât restul de tăiere să fie minim problema discretă a rucsacului Presupunem că s a generat soluţia parţială (x 1,x 2,,xk 1) şi dorim s o extindem prin adăugarea componentei xk. Apar următoarele situaţii: dacă nu se poate genera xk, se revine asupra lui xk 1 şi se generează o altă valoare dacă se poate genera x k şi o sunt îndeplinite condiţiile de continuare o dacă este soluţie se reţine şi se revine căutând alt xk (altă soluţie) o dacă nu este soluţie se generează xk+1 nu sunt îndeplinite condiţiile de continuare se generează un nou x k int n; lungimea soluţiei int nsol; numărul de soluţii int x[n]; vectorul soluţie int inf; marginea.inferioară a domeniului valorilor componente ale solutiei int sup; marginea.superioară a domeniului valorilor componente ale solutiei int xopt[n][nsol]; soluţiile optimale void BKT(int); funcţie care realizează strategia backtracking în mod recursiv sau iterativ void RetSol(); funcţie care realizează prelucrările necesare la găsirea unei soluţii int Continuare(int); funcţie care verifică dacă sunt îndeplinite condiţiile de continuare int Solutie(int); funcţie care verifică dacă s a obţinut soluţie int Succesor(int); funcţie care verifică dacă mai există valori disponibile pentru x k void Include(int); conţine prelucrările asociate selectării unei componente void Exclude(int); conţine prelucrările asociate renunţării la o componentă selectată // backtracking recursiv void BKT(int k){ if(solutie(k)) RetSol(); for(; x[k] S[k] && P(x[0],,x[k]);) BKT(k+1); void BKT(int k){ if(solutie(k)) RetSol(); while(x[k]=successor(k)) if(continuare(k)) BKT(k+1); void BKT (int k) { if (Solutie(k)) 12

13 RetSol(); { x[k] = inf-1; while(succesor(k)) if(continuare(k)) BKT(k+1); void BKT(int k) { int i; for (i=inf;i<=sup;i++) { x[k] =i; if (Continuare(k)) if (k==n) RetSol(); BKT(k+1); void BKT(int k) { int i; if ( k > n) RetSol(); for (i=inf;i<=sup;i++) { x[k] =i; if (Continuare(k)) { Include (k); BKT(k+1); Exclude (k); //backtracking iterativ void BKT(){ for(int i=1;i<=n;i++) x[i]=inf-1; int k=1; while(k>0) if(k>n){ //avem solutie RetSol(); k--; //cauta alta solutie //solutie incompleta if(x[k]<sup){ //mai sunt valori pt.x[k] x[k]++; //urmatoarea valoare if(continuare(k)) //acceptabila k++; //se trece la aflare x[k+1] //s-au epuizat posibilitatile 13

14 { x[k]=inf-1; k--; //se revine la x[k-1] void BKT () { int k=1, exista, corect; x[k] = inf-1; while(k > 0) { do { exista = Succesor(k); corect = Continuare(k); while(exista &&!corect); if(exista) if(solutie(k)) RetSol(); x[++k] = inf-1; k--; void BKT(){ int k=1; while(k){ if(solutie(k)){ RetSol(); nsol++; k--; //pas inapoi pt gen. alta solutie if(x[k]<sup){ x[k]++; if(continuare(k)) k++; { x[k]=inf-1;//nu se poate avansa k--; Exemple de probleme care se rezolvă folosind backtracking. 1. Pentru n dat, să se genereze permutările de n obiecte. #include <stdio.h> #include backtrack.h void main(){ 14

15 scanf( %d, &n); BKT(0); int Solutie(int k){ return k> n-1; void RetSol(){ for(int i=0; i<n; i++) printf( %d, x[i]); printf( \n );; int Continuare(int k){ for(int i=0; i< n; i++) if(x[k]== x[i]) return 0; return 1; void BKT(int k){ if(solutie(k)) RetSol(); for(int i=1; i<= n; i++){ x[k]=i; if(continuare(k)) BKT(k+1); 2. Să se genereze toate posibilităţile de plasare a 8 regine pe tabla de şah, astfel ca acestea să nu se poată ataca între ele. (Reginele se pot ataca pe linii, pe coloane sau pe diagonale). Întrucât fiecare regină este plasată pe o coloană diferită k=0:7, reginele nu se vor ataca pe coloane. Poziţia unei regine pe tablă va fi dată de perechea (k, x[k]), deci soluţia poate fi reprezentată printr un vector x de lungime 8. Condiţia de neatacare pe linii impune ca x[k] x[i] pentru i=0:k-1, iar pentru diagonale, condiţiile ca triunghiurile dreptunghice având ca vârfuri ascuţite (k, x[k]) şi (i,x[i]) să nu fie isoscele, adică: k-i x[k]-x[i], respectiv k-i x[i]-x[k]. Cele două condiţii pot fi comasate întruna singură k-i x[k]- x[i]. int Continuare(int k){ for(int i=0; i<n; i++) if(x[k]==x[i] k-i==abs(x[k]-x[i])) return 0; return 1; void RetSol(){ for(int i=0; i<8; i++){ for(int j=0; j<8; j++) if(j==x[i]) printf( x ); 15

16 printf( 0 ); printf( \n ); 3. Să se genereze o soluţie de acoperire a unei table de şah de dimensiune nxn de către un cal, care porneşte de pe tablă dintr o poziţie iniţialăţ (x0,y0) şi urmează o deplasare specifică în L, fără a ieşi în afara tablei de şah şi fără a trece prin poziţii pe care le a parcurs deja. Soluţia este de lungime fixă n 2 şi este reprezentată printr o matrice, completată cu numerele de ordine ale mutărilor, începând cu poziţia iniţială, numerotată cu 1. O poziţie liberă pe tablă este marcată cu 0. Avansarea pe tablă dintr o poziţie curentă (xc,yc) într o poziţie următoare (xu,yu) indică 8 posibilităţi virtuale, dacă mutarea este pe tablă: 0<=xu,yu<=n-1, şi dacă nu s a trecut deja prin acea poziţie tabla[xu][yu]==0. Coordonatele celor 8 posibile deplasări, relative la poziţia curentă sunt păstrate în tablourile dx şi dy. int x[n]; int n; int nsol=0; int tabla[n][n]; Funcţia Continuare(x,y) validează mutarea cu coordonatele (x,y). int Continuare(int x, int y){ return nsol==0 && x>=0 && x<n && y>=0 && y<n && tabla[x][y]==0; Funcţia Solutie(k) testează dacă s au efectuat n 2 deplasări pe tabla de şah. bool Solutie(int k){ return k > n*n; Funcţia RetSol() afişează matricea tabla[][]. Ocuparea unei poziţii are ca efect secundar marcarea numărului mutării pe tablă. void Ocupa(int k, int x, int y){tabla[x][y]=k; Revenirea dintr o poziţie selectată anterior, determină eliberarea acesteia de pe tablă: void Elibereaza(int x, int y){tabla[x][y]=0; void BKT(){ int xu,yu; if(solutie(k)){ nsol++; RetSol(); for(int i=0; i<8; i++){ xu=xc+dx[i]; yu=yx+dy[i]; if(continuare(xu,yu)){ Ocupa(k,xu,yu); 16

17 BKT(k+1,xu,yu); Elibereaza(xu,yu);; Funcţia main() citeşte n şi poziţia iniţială (x0,y0), iniţializează tabla ca liberă, plasează calul în prima poziţie şi apelează funcţia BKT() pentru a genera celelalte mutări. #include <stdio.h> #define N 8 #include backtrack.h int dx[8]={2,1,-1,-2,-2,-1,1,2; int dy[8]={1,2,2,1,-1,-2,-2,-1; int main(){ int x0,y0; scanf( %d, &n); scanf(, &x0, &y0); //initializare tabla for(int i=0; i<n; i++) for(int j=0; j<n; j++) tabla[i][j]=0; tabla[x0][y0]=1; BKT(2,x0,y0); Backtracking optimizat. Eficienţa metodei backtracking depinde de mai mulţi factori: timpul necesar generării următoarei componente x[k] numărul candidaţilor care satisfac restricţiile explicite (dimensiunea spaţiului soluţiilor) timpul necesar verificării funcţiei criteriu (restricţiile implicite) numărul candidaţilor care satisfac restricţiile implicite Funcţia criteriu (numită şi funcţie de limitare) este eficientă, dacă reduce în mod substanţial numărul de noduri generate. Este posibil ca o funcţie de limitare eficientă să necesite un timp mare de evaluare, aşa că vom prefera în general reducerea timpului de calcul. Pentru multe probleme se cunosc metode de limitare simple şi eficiente. Selectarea următoarei componente ar permite considerarea componentelor în orice ordine, dar o simplă rearanjare a componentelor ar putea reduce numărul selecţiilor posibile. Mulţimea A conţine n întregi pozitivi a 0,a 1,,an 1. Găsiţi submulţimile lui A, a căror sumă este egală cu o valoare dată S. Vom alege vectorul soluţie de lungime fixă n, cu următoarea semnificaţie: dacă x[k]=0, atunci componenta a[k] nu a fost selectată în soluţie.condiţia de continuare în pasul k impune: (în caz contrar, chiar dacă am selecta toate componentele rămase, nu am reuşi să obţinem valoarea S). Dacă în prealabil, sortăm crescător componentele, putem îmbunătăţi condiţia de continuare prin k j= 1 a x j j + k j= 0 a a x j j k + 1 S + n 1 a j j= k + 1 S 17

18 (în caz contrar nu am mai avea soluţie cu selecţia făcută până acum). Vom evita calculul în fiecare pas al sumelor şi punând aceste valori în lista de parametri ai funcţiei a x j j a j j= 0 j= k + n BKT(). Aceasta implică a 0 S şi. 1 a j S n Apelul iniţial presupune calculul în prealabil al ultimului parametru. 1 j= 1 BKT 0, 0, a j j= 0 În funcţia BKT() vom considera separat cele două situaţii: x[k]=1 selectăm componenta a[k] şi x[k]=1 nu selectăm componenta. Condiţiile de continuare, ca şi stabilirea dacă s a găsit soluţie se formulează explicit, fără a mai defini funcţii suplimentare. Divide et impera Probleme propuse. 1. Pentru evaluarea polinomului p n (x)=a 0 +a 1 x+ +a n x n prin metoda divide et impera, se grupează termenii polinomului sub forma: a) pentru n par: n=2k p n (x)=a 0 +a 2 x a 2k x 2k +x(a 1 +a 3 x a 2k 1 x 2k 2 )= b 0 +b 1 y+... +b k y k + y(c 0 +c 1 y+ +c k 1 y k 1 ) b) pentru n impar: n=2k+1 k p n (x)=a 0 +a 2 x a 2k x 2k +x(a 1 +a 3 x a 2k+1 x 2k )= b 0 +b 1 y+... +b k y k + y(c 0 +c 1 y+ +c k y k ) Se evaluează direct numai polinoamele de grad 0 şi 1. Scrieţi o funcţie cu semnătura: double poly(int n, double *a, double x); care evaluează polinomul prin metoda descrisă. Exemplu: 1 x+2x 2 4x 3 +3x 4 +x 5 =1+2x 2 +3x 4 x(1+4x 2 x 4 )= = 1+2y+3y 2 y(1+4y y 2 )= 1+3y 2 +y(2) y[1 y 2 +y(4)] = n 1 ( 2 ) 1 z ( ) = z + z + z 4 2. Pentru evaluarea polinomului p n (x)=a 0 +a 1 x+ +a n x n prin metoda divide et impera, se grupează termenii polinomului sub forma: a) pentru n par: n=2k p n (x)=a 0 +a 1 x+...+a k x k +x k+1 (a k+1 +a k+2 x a 2k x k 1 )= a 0 +a 1 x+... +a k x k +x k+1 (b 0 +b 1 x+ +b k 1 x k 1 ) b) pentru n impar: n=2k+1 p n (x)=a 0 +a 1 x+...+a k x k +x k+1 (a k+1 +a k+2 x+...+a 2k+1 x k )= a 0 +a 1 x+... +a k x k +x k+1 (b 0 +b 1 x+ +b k x k ) Se evaluează direct numai polinoamele de grad 0 şi 1. Scrieţi o funcţie cu semnătura: double poly(int n, double *a, double x); care evaluează polinomul prin metoda descrisă. Exemplu: p(x)=1 x+2x 2 + 4x 3 +3x 4 +x 5 +2x 6 = 1 x+2x 2 4x 3 )+x 4 (3+x+2x 2 ) = 2p 18

19 x + x 2 4x + x 3 + x + x 2 Se dă un vector x cu n elemente şi un întreg 0 k<n. Să se determine, utilizând o strategie divide et impera, cel de al k lea cel mai mic element fără a sorta vectorul x. 3. Scrieti un algoritm de tip divide et impera care stabileste un orar de disputare a unui turneu de tenis cu n concurenţi, în care fiecare doi concurenţi se întâlnesc o singură dată. Se vor considera două situaţii: n este o putere a lui 2. (Numărul de zile în care se desfăţoară turneul este n-1). n este oarecare. (În acest caz numărul de zile este n-1 dacă n este par sau n dacă n este impar). 4. Să se modifice algoritmul de căutare binară, astfel ca în cazul în care valoarea căutată nu se află în tabloul x, funcţia să întoarcă poziţia în care trebuie înserată această valoare, adică indicele j pentru care: x[j] <= y < x[j+1]. 5. La un turneu de tenis, la care participă n jucători, fiecare jucător joacă cu ceilalţi n 1. Bazându ne pe rezultatele directe ale jocurilor între ei, să se stabilească un clasament folosind strategia divide et impera. 6. Un tablou A conţine n elemente A[1] < A[2] <...< A[n]. Scrieţi un algoritm cu eficienţă mai bună ca O(n), care determină, dacă există, un element A[i] = i. Care este complexitatea algoritmului în cazul cel mai nefavorabil. 7. Se dă un vector x cu n elemente şi un întreg 1 k n. Să se determine, utilizând o strategie divide et impera, cel de al k lea cel mai mic element fără a sorta vectorul x. 8. Un dreptunghi de dimensiuni a şi b, având laturile întregi în relaţia a b < a < b, poate fi descompus în două pătrate şi un dreptunghi în două moduri posibile: a b-a b a b-a a a/2 b-a/2 a/2 Dreptunghiul rezultat este descompus în acelaşi mod până se ajunge la un dreptunghi care nu mai satisface relaţia dintre laturi. Să se determine şirul de descompuneri în urma căruia rezultă un număr minim de figuri care nu mai pot fi descompuse. 19

20 Descompunerea minimă va fi reprezentată printr un şir de pătrate şi un dreptunghi. De exemplu: a=21,b=34 se obţin 5 pătrate 21,13,4,8,1 şi un dreptunghi 1 7 Indicaţie: Se defineşte o funcţie recursivă de descompunere (cu parametri laturile unui dreptunghi, numărul de figuri nedecompozabile şi dimensiunile acestora), care determină (dacă dreptunghiul poate fi descompus) cele două modalităţi de descompunere şi se selectează descompunerea cu număr minim de componente. 9. O bucată de tablă de dimensiuni a x b are practicate n găuri cu centrele având coordonatele (x[i],y[i]),raportate la colţul stânga jos, considerat ca origine. Diametrele găurilor se consideră neglijabile. Determinaţi, prin coordonatele a două colţuri opuse, folosind o strategie divide et impera, bucata dreptunghiulară de arie maximă, care nu conţine găuri, ce se poate decupa prin tăiere pe direcţii paralele cu laturile. 10. Într un parc de formă dreptunghiulară cu dimensiunile a x b se află n copaci, având coordonatele (x i,y i ), i=0:n 1, în raport cu originea colţul stânga jos al parcului. Găsiţi toate amplasamentele posibile pentru un teren de tenis, având dimensiunile u x v, fără a tăia în acest scop vreun copac. Un amplasament este un dreptunghi care nu include copaci în interiorul său, ci numai pe margini, caracterizat prin dimensiunile sale şi coordonatele colţului stânga jos, raportate la acelaşi sistem de coordonate. Indicaţie: Într un teren dreptunghiular, dat prin dimensiuni şi coordonatele colţului stânga jos se verifică dacă există copaci. Prezenţa unui copac împarte mai întâi terenul printr o orizontală în două terenuri (şi apoi printr o verticală în alte două terenuri), în care, în mod recursiv se caută copaci. În momentul în care se obţine un teren fără copaci, se verifică dacă dimensiunile lui pot forma un teren de tenis, şi în caz afirmativ se memorează dimensiunile lui şi coordonatele colţului stânga jos. 11. Pentru calculul celui mai mare divizor comun a două numere se foloseşte algoritmul lui Euclid. Pentru a calcula cmmdc a n numere plasate într un tablou, folosind metoda divide et impera, se împarte tabloul în două jumătăţi şi se calculează cmmdc al celor doi divizori comuni ai celor două jumătăţi ale tabloului. Calculaţi cmmdc al elementelor tabloului şi evaluaţi complexitatea. Backtracking 1. Pe o tablă de şah de dimensiune n x n se dau coordonatele (x,y) ale unui rege, ale unui cal şi a p obstacole. Scrieţi un program care să l ajute pe cal să ajungă la rege şi să se întoarcă înapoi în pozitia de plecare, generându i toate traseele posibile, urmând mersul specific în L al calului, evitând obstacolele, fară a ieşi de pe tablă şi fară a trece prin pozitii pe care le a parcurs deja. Programul va genera fiecare traseu şi lungimea sa 2. După o cercetare atentă a inscriptiilor obscene de pe ziduri de tipul IONUT + MARIA = COSTEL, Vasilică a ajuns la concluzia că acestea nu reprezintă triunghiuri conjugale, ci simple operaţii de adunare în baza 10 codificate. Scrieţi un program carte să l ajute pe Vasilică să descifreze misterioasele adunări, stabilind corespondenţele între litere şi cifre. 20

21 3. Acoperirea cu noduri a arcelor unui graf.fiind dat un graf neorientat G=(V,M), să se determine numarul minim de vârfuri (o submulţime a mulţimii V) care acoperă toate muchiile grafului (mulţimea M). Indicatie: Vectorul soluţie contine numere de vârfuri şi are o lungime variabila, mai mică sau egală cu n (n fiind numarul de vârfuri din graf). Conditia de acceptare a unui vârf în pozitia k din vectorul soluţie: să nu fi fost selectat anterior (diferit de x[0],..x[k-1]) S a ajuns la o soluţie atunci când au fost acoperite toate muchiile din graf. Se va stabili mai întâi cum se tine evidenta muchiilor acoperite şi respectiv neacoperite încă din graf. Exemplu de date: Graful cu 7 noduri şi cu muchiile : (1,2), (2,3), (3,4), (3,5), (4,5), (4,6), (5,6), (4,7). Soluţia optimă foloseste 3 noduri: x[1]=2, x[2]=4, x[3]=5. 4. Pentru ca echipa natională de fotbal să obţină rezultate mai bune, Iordănescu a recurs la serviciile unui informatician, care a propus trecerea celor 11 jucatori pe alte posturi decât cele pe care evoluează în mod obişnuit, în scopul imbunătăţirii randamentului global al echipei. Pentru aceasta s a făcut o evaluare a valorii fiecărui jucător printr un procentaj şi pentru fiecare jucător s a evaluat (tot procentual), randamentul utilizării jucătorului pe fiecare post. Folosind aceste date, să se stabilească o alocare a jucă torilor pe posturi astfel încât randamentul global al echipei să fie maxim. 5. Pe o casetă trebuiesc înregistrate n melodii. Pentru fiecare melodie se cunoaşte durata în secunde. Determinaţii toate posibilităţile de plasare ale melodiilor pe cele două feţe, astfel ca diferenţa duratelor celor două feţe să fie minimă. 6. Generaţi toate partiţiile unui număr întreg n. De exemplu: 5=5=4+1=3+2=3+1+1=2+2+1= = O matrice nxn are elemente întregi 1, 2 şi 3. În matrice se introduc n elemente 0. Determinaţi toate posibilităţile de plasare ale acestora, ştiind că pot fi înlocuite numai elemente 1 şi 2, şi că nu pot apare mai multe elemente zero pe aceeaşi linie, coloană sau diagonală. 8. Un alfabet conţine v vocale şi c consoane. Să se genereze toate cuvintele de lungime n, care nu conţin 3 vocale sau 3 consoane alăturate. Datele citite sunt: n lungimea cuvintelor, v numărul de vocale, voc tabelul vocalelor, c numărul consoanelor şi cons tabelul consoanelor. 9. Se consideră o bară de lungime M şi n repere avand lungimile: a 0 < a 1 <...<a n 1 Să se genereze toate modurile distincte în care poate fi tăiată bara, fără a rămâne rest de tăiere, putând folosi un reper o singură dată. 10. Se consideră o bară de lungime M şi n repere avand lungimile: a 0 < a 1 <...<a n 1 Să se genereze toate modurile distincte în care poate fi tăiată bara, fără a rămâne rest de tăiere, putând folosi un reper de mai multe ori. 11. Se consideră o bară de lungime M şi n repere avand lungimile: a 0 <a 1 <...<a n 1 21

22 Să se genereze toate modurile distincte în care poate fi tăiată bara, putând folosi un reper de mai multe ori, astfel încât restul rezultat din tăiere sa fie minim. 12. Acoperirea cu arce a nodurilor unui graf Un graf cu costuri poate fi acoperit cu arce prin mai multi arbori (grafuri fara cicluri). Un arbore acopera un graf daca atinge toate nodurile sale cu arce din graful initial. Indicaţie: Pentru a determina arborele de cost minim metoda backtracking generează toţi arborii de acoperire posibili, calculează costurile lor (ca suma a costurilor arcelor), le compară şi reţine arborele cu cost minim. O soluţie a problemei este un vector de arce (de perechi de noduri) şi poate fi redus la un vector de predecesori. In acest vector de întregi x, x[k] reprezintă predecesorul nodului k, deci arcele din arborele căutat sunt de forma (x[i],i). Vectorul x are exact n 1 omponente. Condiţiile de acceptare a unei valori (între 1 si n) pentru x[k] sunt: x[k] diferit de k să existe arc între x[k] si k arcul (x[k] k) sa nu fie deja inclus în arborele de cost minim Exemplu: Graful neorientat cu 4 noduri si cu arcele (1,2)=1,(1,4)=2,(2,3)=2, (2,4)=1, (3,4)=1. Pentru acest arbore exista 8 arbori de acoperire diferiti, dintre care 3 au costul 5, 4 au costul 4 si unul are costul 3. Arborele de cost minim este 1 2,2 4,3 4 cu 3 arce de cost 1 fiecare. Vectorul solutie va fi x[1]= 2, x[2]=4, x[3]=4 13. Acoperirea cu noduri a arcelor unui graf.fiind dat un graf neorientat G=(V,M), sa se determine numarul minim de vârfuri (o submultime a multimii V) care acopera toate muchiile grafului (multimea M). Indicatie: Vectorul solutie contine numere de vârfuri si are o lungime variabila, mai mica sau egala cu n (n fiind numarul de vârfuri din graf). Conditia de acceptare a unui vârf în pozitia k din vectorul solutie: sa nu fi fost selectat anterior (diferit de x[0],..x[k 1]) S a ajuns la o solutie atunci când au fost acoperite toate muchiile din graf. Se va stabili mai întâi cum se tine evidenta muchiilor acoperite si respectiv neacoperite înca din graf. Exemplu de date: Graful cu 7 noduri si cu muchiile : (1,2), (2,3), (3,4), (3,5), (4,5), (4,6), (5,6), (4,7) Solutia optima foloseste 3 noduri: x[1]=2, x[2]=4, x[3]= Pentru repartizarea celor n studenti (n par) dintr o grupă în subgrupe formate de câte 2 studenţi se foloseşte un tablou P[n][n] în care P[i][j] este preferinţa studentului i pentru a lucra cu studentul j. Ponderea perechii (i, j) se exprimă prin P[i] [j]*p[j][i]. Se cere sa împerechem studenţii astfel încât suma ponderilor perechilor să fie maximizată. 22

Metode iterative pentru probleme neliniare - contractii

Metode iterative pentru probleme neliniare - contractii Metode iterative pentru probleme neliniare - contractii Problemele neliniare sunt in general rezolvate prin metode iterative si analiza convergentei acestor metode este o problema importanta. 1 Contractii

Διαβάστε περισσότερα

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE. 5 Eerciţii reolvate 5 UNCŢII IMPLICITE EXTREME CONDIŢIONATE Eerciţiul 5 Să se determine şi dacă () este o funcţie definită implicit de ecuaţia ( + ) ( + ) + Soluţie ie ( ) ( + ) ( + ) + ( )R Evident este

Διαβάστε περισσότερα

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu INTRODUCERE Laborator 1: ÎN ALGORITMI Întocmit de: Claudia Pârloagă Îndrumător: Asist. Drd. Gabriel Danciu I. NOŢIUNI TEORETICE A. Sortarea prin selecţie Date de intrare: un şir A, de date Date de ieşire:

Διαβάστε περισσότερα

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie p, q N. Fie funcţia f : D R p R q. Avem următoarele

Διαβάστε περισσότερα

Metode de interpolare bazate pe diferenţe divizate

Metode de interpolare bazate pe diferenţe divizate Metode de interpolare bazate pe diferenţe divizate Radu Trîmbiţaş 4 octombrie 2005 1 Forma Newton a polinomului de interpolare Lagrange Algoritmul nostru se bazează pe forma Newton a polinomului de interpolare

Διαβάστε περισσότερα

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică Gh. Asachi Curs 14 Funcţii implicite Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie F : D R 2 R o funcţie de două variabile şi fie ecuaţia F (x, y) = 0. (1) Problemă În ce condiţii ecuaţia

Διαβάστε περισσότερα

Sisteme diferenţiale liniare de ordinul 1

Sisteme diferenţiale liniare de ordinul 1 1 Metoda eliminării 2 Cazul valorilor proprii reale Cazul valorilor proprii nereale 3 Catedra de Matematică 2011 Forma generală a unui sistem liniar Considerăm sistemul y 1 (x) = a 11y 1 (x) + a 12 y 2

Διαβάστε περισσότερα

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1 Functii definitie proprietati grafic functii elementare A. Definitii proprietatile functiilor. Fiind date doua multimi X si Y spunem ca am definit o functie (aplicatie) pe X cu valori in Y daca fiecarui

Διαβάστε περισσότερα

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a. Definiţie Spunem că: i) funcţia f are derivată parţială în punctul a în raport cu variabila i dacă funcţia de o variabilă ( ) are derivată în punctul a în sens obişnuit (ca funcţie reală de o variabilă

Διαβάστε περισσότερα

Curs 1 Şiruri de numere reale

Curs 1 Şiruri de numere reale Bibliografie G. Chiorescu, Analiză matematică. Teorie şi probleme. Calcul diferenţial, Editura PIM, Iaşi, 2006. R. Luca-Tudorache, Analiză matematică, Editura Tehnopress, Iaşi, 2005. M. Nicolescu, N. Roşculeţ,

Διαβάστε περισσότερα

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor. Fiind date doua multimi si spunem ca am definit o functie (aplicatie) pe cu valori in daca fiecarui element

Διαβάστε περισσότερα

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale. 5p Determinați primul termen al progresiei geometrice ( b n ) n, știind că b 5 = 48 și b 8 = 84 5p Se consideră funcția f : intersecție a graficului funcției f cu aa O R R, f ( ) = 7+ 6 Determinați distanța

Διαβάστε περισσότερα

Curs 4 Serii de numere reale

Curs 4 Serii de numere reale Curs 4 Serii de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Criteriul rădăcinii sau Criteriul lui Cauchy Teoremă (Criteriul rădăcinii) Fie x n o serie cu termeni

Διαβάστε περισσότερα

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Cuprins Scheme de algoritmi Divide et impera Exemplificare

Διαβάστε περισσότερα

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Metode de Optimizare Curs V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Propoziţie 7. (Fritz-John). Fie X o submulţime deschisă a lui R n, f:x R o funcţie de clasă C şi ϕ = (ϕ,ϕ

Διαβάστε περισσότερα

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE ABSTRACT. Materialul prezintă o modalitate de a afla distanţa dintre două drepte necoplanare folosind volumul tetraedrului. Lecţia se adresează clasei a VIII-a Data:

Διαβάστε περισσότερα

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare 1 Planul în spaţiu Ecuaţia generală Plane paralele Unghi diedru 2 Ecuaţia generală Plane paralele Unghi diedru Fie reperul R(O, i, j, k ) în spaţiu. Numim normala a unui plan, un vector perpendicular pe

Διαβάστε περισσότερα

Subiecte Clasa a VIII-a

Subiecte Clasa a VIII-a Subiecte lasa a VIII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul

Διαβάστε περισσότερα

Examen AG. Student:... Grupa: ianuarie 2016

Examen AG. Student:... Grupa: ianuarie 2016 16-17 ianuarie 2016 Problema 1. Se consideră graful G = pk n (p, n N, p 2, n 3). Unul din vârfurile lui G se uneşte cu câte un vârf din fiecare graf complet care nu-l conţine, obţinându-se un graf conex

Διαβάστε περισσότερα

Examen AG. Student:... Grupa:... ianuarie 2011

Examen AG. Student:... Grupa:... ianuarie 2011 Problema 1. Pentru ce valori ale lui n,m N (n,m 1) graful K n,m este eulerian? Problema 2. Să se construiască o funcţie care să recunoască un graf P 3 -free. La intrare aceasta va primi un graf G = ({1,...,n},E)

Διαβάστε περισσότερα

Esalonul Redus pe Linii (ERL). Subspatii.

Esalonul Redus pe Linii (ERL). Subspatii. Seminarul 1 Esalonul Redus pe Linii (ERL). Subspatii. 1.1 Breviar teoretic 1.1.1 Esalonul Redus pe Linii (ERL) Definitia 1. O matrice A L R mxn este in forma de Esalon Redus pe Linii (ERL), daca indeplineste

Διαβάστε περισσότερα

Integrala nedefinită (primitive)

Integrala nedefinită (primitive) nedefinita nedefinită (primitive) nedefinita 2 nedefinita februarie 20 nedefinita.tabelul primitivelor Definiţia Fie f : J R, J R un interval. Funcţia F : J R se numeşte primitivă sau antiderivată a funcţiei

Διαβάστε περισσότερα

Criptosisteme cu cheie publică III

Criptosisteme cu cheie publică III Criptosisteme cu cheie publică III Anul II Aprilie 2017 Problema rucsacului ( knapsack problem ) Considerăm un număr natural V > 0 şi o mulţime finită de numere naturale pozitive {v 0, v 1,..., v k 1 }.

Διαβάστε περισσότερα

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM Seminar S ANALA ÎN CUENT CONTNUU A SCHEMELO ELECTONCE S. ntroducere Pentru a analiza în curent continuu o schemă electronică,

Διαβάστε περισσότερα

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1)

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1) Universitatea din ucureşti.7.4 Facultatea de Matematică şi Informatică oncursul de admitere iulie 4 omeniul de licenţă alculatoare şi Tehnologia Informaţiei lgebră (). Fie x,y astfel încât x+y = şi x +

Διαβάστε περισσότερα

MARCAREA REZISTOARELOR

MARCAREA REZISTOARELOR 1.2. MARCAREA REZISTOARELOR 1.2.1 MARCARE DIRECTĂ PRIN COD ALFANUMERIC. Acest cod este format din una sau mai multe cifre şi o literă. Litera poate fi plasată după grupul de cifre (situaţie în care valoarea

Διαβάστε περισσότερα

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0 Facultatea de Hidrotehnică, Geodezie şi Ingineria Mediului Matematici Superioare, Semestrul I, Lector dr. Lucian MATICIUC SEMINAR 4 Funcţii de mai multe variabile continuare). Să se arate că funcţia z,

Διαβάστε περισσότερα

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă. III. Serii absolut convergente. Serii semiconvergente. Definiţie. O serie a n se numeşte: i) absolut convergentă dacă seria modulelor a n este convergentă; ii) semiconvergentă dacă este convergentă iar

Διαβάστε περισσότερα

Seminar 5 Analiza stabilității sistemelor liniare

Seminar 5 Analiza stabilității sistemelor liniare Seminar 5 Analiza stabilității sistemelor liniare Noțiuni teoretice Criteriul Hurwitz de analiză a stabilității sistemelor liniare În cazul sistemelor liniare, stabilitatea este o condiție de localizare

Διαβάστε περισσότερα

Asupra unei inegalităţi date la barajul OBMJ 2006

Asupra unei inegalităţi date la barajul OBMJ 2006 Asupra unei inegalităţi date la barajul OBMJ 006 Mircea Lascu şi Cezar Lupu La cel de-al cincilea baraj de Juniori din data de 0 mai 006 a fost dată următoarea inegalitate: Fie x, y, z trei numere reale

Διαβάστε περισσότερα

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 SERII NUMERICE Definiţia 3.1. Fie ( ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 şirul definit prin: s n0 = 0, s n0 +1 = 0 + 0 +1, s n0 +2 = 0 + 0 +1 + 0 +2,.......................................

Διαβάστε περισσότερα

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I. Modelul 4 Se acordă din oficiu puncte.. Fie numărul complex z = i. Calculaţi (z ) 25. 2. Dacă x şi x 2 sunt rădăcinile ecuaţiei x 2 9x+8 =, atunci să se calculeze x2 +x2 2 x x 2. 3. Rezolvaţi în mulţimea

Διαβάστε περισσότερα

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea Serii Laurent Definitie. Se numeste serie Laurent o serie de forma Seria n= (z z 0 ) n regulata (tayloriana) = (z z n= 0 ) + n se numeste partea principala iar seria se numeste partea Sa presupunem ca,

Διαβάστε περισσότερα

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice 1 Conice pe ecuaţii reduse 2 Conice pe ecuaţii reduse Definiţie Numim conica locul geometric al punctelor din plan pentru care raportul distantelor la un punct fix F şi la o dreaptă fixă (D) este o constantă

Διαβάστε περισσότερα

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005. SUBIECTUL Editia a VI-a 6 februarie 005 CLASA a V-a Fie A = x N 005 x 007 si B = y N y 003 005 3 3 a) Specificati cel mai mic element al multimii A si cel mai mare element al multimii B. b)stabiliti care

Διαβάστε περισσότερα

Sortare. 29 martie Utilizarea şi programarea calculatoarelor. Curs 16

Sortare. 29 martie Utilizarea şi programarea calculatoarelor. Curs 16 Sortare 29 martie 2005 Sortare 2 Sortarea. Generalitǎţi Sortarea = aranjarea unei liste de obiecte dupǎ o relaţie de ordine datǎ (ex.: pentru numere, ordine lexicograficǎ pt. şiruri, etc.) una din clasele

Διαβάστε περισσότερα

Laborator 6. Integrarea ecuaţiilor diferenţiale

Laborator 6. Integrarea ecuaţiilor diferenţiale Laborator 6 Integrarea ecuaţiilor diferenţiale Responsabili: 1. Surdu Cristina(anacristinasurdu@gmail.com) 2. Ştirbăţ Bogdan(bogdanstirbat@yahoo.com) Obiective În urma parcurgerii acestui laborator elevul

Διαβάστε περισσότερα

Să se arate că n este număr par. Dan Nedeianu

Să se arate că n este număr par. Dan Nedeianu Primul test de selecție pentru juniori I. Să se determine numerele prime p, q, r cu proprietatea că 1 p + 1 q + 1 r 1. Fie ABCD un patrulater convex cu m( BCD) = 10, m( CBA) = 45, m( CBD) = 15 și m( CAB)

Διαβάστε περισσότερα

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Functii Breviar teoretic 8 ianuarie ianuarie 2011 Functii Breviar teoretic 8 ianuarie 011 15 ianuarie 011 I Fie I, interval si f : I 1) a) functia f este (strict) crescatoare pe I daca x, y I, x< y ( f( x) < f( y)), f( x) f( y) b) functia f este (strict)

Διαβάστε περισσότερα

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice Teme de implementare in Matlab pentru Laboratorul de Metode Numerice As. Ruxandra Barbulescu Septembrie 2017 Orice nelamurire asupra enunturilor/implementarilor se rezolva in cadrul laboratorului de MN,

Διαβάστε περισσότερα

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB, aprilie 7 Proba scrisă la MATEMATICĂ SUBIECTUL I (3 puncte) ) (5 puncte) Fie matricele A = 3 4 9 8

Διαβάστε περισσότερα

Subiecte Clasa a VII-a

Subiecte Clasa a VII-a lasa a VII Lumina Math Intrebari Subiecte lasa a VII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate

Διαβάστε περισσότερα

riptografie şi Securitate

riptografie şi Securitate riptografie şi Securitate - Prelegerea 12 - Scheme de criptare CCA sigure Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Schemă de criptare

Διαβάστε περισσότερα

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca Conice Lect. dr. Constantin-Cosmin Todea U.T. Cluj-Napoca Definiţie: Se numeşte curbă algebrică plană mulţimea punctelor din plan de ecuaţie implicită de forma (C) : F (x, y) = 0 în care funcţia F este

Διαβάστε περισσότερα

Algoritmica grafurilor XI. Cuplaje in grafuri. Masuri de calitate. Numere Ramsey

Algoritmica grafurilor XI. Cuplaje in grafuri. Masuri de calitate. Numere Ramsey Algoritmica grafurilor XI. Cuplaje in grafuri. Masuri de calitate. Numere Ramsey Mihai Suciu Facultatea de Matematică și Informatică (UBB) Departamentul de Informatică Mai, 16, 2018 Mihai Suciu (UBB) Algoritmica

Διαβάστε περισσότερα

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE 5.5. A CIRCUITELOR CU TRANZISTOARE BIPOLARE PROBLEMA 1. În circuitul din figura 5.54 se cunosc valorile: μa a. Valoarea intensității curentului de colector I C. b. Valoarea tensiunii bază-emitor U BE.

Διαβάστε περισσότερα

Geometrie computationala 2. Preliminarii geometrice

Geometrie computationala 2. Preliminarii geometrice Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Geometrie computationala 2. Preliminarii geometrice Preliminarii geometrice Spatiu Euclidean: E d Spatiu de d-tupluri,

Διαβάστε περισσότερα

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1) Ecuatii exponentiale Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. Cea mai simpla ecuatie exponentiala este de forma a x = b, () unde a >, a. Afirmatia.

Διαβάστε περισσότερα

a. 11 % b. 12 % c. 13 % d. 14 %

a. 11 % b. 12 % c. 13 % d. 14 % 1. Un motor termic funcţionează după ciclul termodinamic reprezentat în sistemul de coordonate V-T în figura alăturată. Motorul termic utilizează ca substanţă de lucru un mol de gaz ideal având exponentul

Διαβάστε περισσότερα

Laborator 11. Mulţimi Julia. Temă

Laborator 11. Mulţimi Julia. Temă Laborator 11 Mulţimi Julia. Temă 1. Clasa JuliaGreen. Să considerăm clasa JuliaGreen dată de exemplu la curs pentru metoda locului final şi să schimbăm numărul de iteraţii nriter = 100 în nriter = 101.

Διαβάστε περισσότερα

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15 MĂSURI RELE Cursul 13 15 Măsuri reale Fie (,, µ) un spaţiu cu măsură completă şi f : R o funcţie -măsurabilă. Cum am văzut în Teorema 11.29, dacă f are integrală pe, atunci funcţia de mulţime ν : R, ν()

Διαβάστε περισσότερα

Curs 2 Şiruri de numere reale

Curs 2 Şiruri de numere reale Curs 2 Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Convergenţă şi mărginire Teoremă Orice şir convergent este mărginit. Demonstraţie Fie (x n ) n 0 un

Διαβάστε περισσότερα

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ CONCURS DE ADMITERE, 7 iulie 207 Proba scrisă la MATEMATICĂ SUBIECTUL I (30 puncte) ) (0 puncte) Să se arate că oricare ar

Διαβάστε περισσότερα

1.3 Baza a unui spaţiu vectorial. Dimensiune

1.3 Baza a unui spaţiu vectorial. Dimensiune .3 Baza a unui spaţiu vectorial. Dimensiune Definiţia.3. Se numeşte bază a spaţiului vectorial V o familie de vectori B care îndeplineşte condiţiile de mai jos: a) B este liniar independentă; b) B este

Διαβάστε περισσότερα

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b. Lucrare Soluţii 28 aprilie 2015 Varianta 1 I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2 Definiţie. Numărul întreg p se numeşte număr prim dacă p 0,

Διαβάστε περισσότερα

METODE NUMERICE: Laborator #5 Metode iterative pentru rezolvarea sistemelor: Jacobi, Gauss-Siedel, Suprarelaxare

METODE NUMERICE: Laborator #5 Metode iterative pentru rezolvarea sistemelor: Jacobi, Gauss-Siedel, Suprarelaxare METODE NUMERICE: Laborator #5 Metode iterative pentru rezolvarea sistemelor: Jacobi, Gauss-Siedel, Suprarelaxare Titulari curs: Florin Pop, George-Pantelimon Popescu Responsabil Laborator: Mădălina-Andreea

Διαβάστε περισσότερα

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Aplicaţii ale principiului I al termodinamicii la gazul ideal Aplicaţii ale principiului I al termodinamicii la gazul ideal Principiul I al termodinamicii exprimă legea conservării şi energiei dintr-o formă în alta şi se exprimă prin relaţia: ΔUQ-L, unde: ΔU-variaţia

Διαβάστε περισσότερα

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor Facultatea de Matematică Calcul Integral şi Elemente de Analiă Complexă, Semestrul I Lector dr. Lucian MATICIUC Seminariile 9 20 Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reiduurilor.

Διαβάστε περισσότερα

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă Noţiunea de spaţiu liniar 1 Noţiunea de spaţiu liniar Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară 2 Mulţime infinită liniar independentă 3 Schimbarea coordonatelor unui vector la o schimbare

Διαβάστε περισσότερα

Algebra si Geometrie Seminar 9

Algebra si Geometrie Seminar 9 Algebra si Geometrie Seminar 9 Decembrie 017 ii Equations are just the boring part of mathematics. I attempt to see things in terms of geometry. Stephen Hawking 9 Dreapta si planul in spatiu 1 Notiuni

Διαβάστε περισσότερα

CURS 11. Rădăcină unei ecuatii: Cum se defineste o rădăcină aproximativă?

CURS 11. Rădăcină unei ecuatii: Cum se defineste o rădăcină aproximativă? CURS 11 Rezolvarea ecuaţiilor transcendente Fie ecuatia: f(x)=0 algebrică - dacă poate fi adusă la o formă polinomială transcendentă dacă nu este algebrică Ecuaţii algebrice: 3x=9; 2x 2-3x+2=0; x5=x(2x-1);

Διαβάστε περισσότερα

2 Transformări liniare între spaţii finit dimensionale

2 Transformări liniare între spaţii finit dimensionale Transformări 1 Noţiunea de transformare liniară Proprietăţi. Operaţii Nucleul şi imagine Rangul şi defectul unei transformări 2 Matricea unei transformări Relaţia dintre rang şi defect Schimbarea matricei

Διαβάστε περισσότερα

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2 .1 Sfera Definitia 1.1 Se numeşte sferă mulţimea tuturor punctelor din spaţiu pentru care distanţa la u punct fi numit centrul sferei este egalăcuunnumăr numit raza sferei. Fie centrul sferei C (a, b,

Διαβάστε περισσότερα

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3 SEMINAR 2 SISTEME DE FRŢE CNCURENTE CUPRINS 2. Sisteme de forţe concurente...1 Cuprins...1 Introducere...1 2.1. Aspecte teoretice...2 2.2. Aplicaţii rezolvate...3 2. Sisteme de forţe concurente În acest

Διαβάστε περισσότερα

Metode de sortare. Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare.

Metode de sortare. Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare. Metode de sortare Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare. 1. Sortare prin selecţie directă Sortarea prin selecţia minimului

Διαβάστε περισσότερα

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă Coordonatori DANA HEUBERGER NICOLAE MUŞUROIA Nicolae Muşuroia Gheorghe Boroica Vasile Pop Dana Heuberger Florin Bojor MATEMATICĂ DE EXCELENŢĂ pentru concursuri, olimpiade şi centre de excelenţă Clasa a

Διαβάστε περισσότερα

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy Metode Runge-Kutta Radu T. Trîmbiţaş 8 ianuarie 7 Probleme scalare, pas constant Dorim să aproximăm soluţia problemei Cauchy y (t) = f(t, y), a t b, y(a) = α. pe o grilă uniformă de (N + )-puncte din [a,

Διαβάστε περισσότερα

Progresii aritmetice si geometrice. Progresia aritmetica.

Progresii aritmetice si geometrice. Progresia aritmetica. Progresii aritmetice si geometrice Progresia aritmetica. Definitia 1. Sirul numeric (a n ) n N se numeste progresie aritmetica, daca exista un numar real d, numit ratia progresia, astfel incat a n+1 a

Διαβάστε περισσότερα

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB 1.7. AMLFCATOARE DE UTERE ÎN CLASA A Ş AB 1.7.1 Amplificatoare în clasa A La amplificatoarele din clasa A, forma de undă a tensiunii de ieşire este aceeaşi ca a tensiunii de intrare, deci întreg semnalul

Διαβάστε περισσότερα

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri Generarea şi ordonarea permutărilor. Principiul porumbeilor. Principiul incluziunii si excluziunii Recapitulare din cursul trecut Presupunem că A este o mulţime cu n elemente. Recapitulare din cursul trecut

Διαβάστε περισσότερα

Sortare şi cǎutare. 8 ianuarie Utilizarea şi programarea calculatoarelor. Curs 11

Sortare şi cǎutare. 8 ianuarie Utilizarea şi programarea calculatoarelor. Curs 11 Sortare şi cǎutare 8 ianuarie 2004 Sortare şi cǎutare 2 Sortarea. Generalitǎţi Sortarea = aranjarea unei liste de obiecte dupǎ o relaţie de ordine datǎ (ex.: pentru numere, ordine lexicograficǎ pt. şiruri,

Διαβάστε περισσότερα

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii Clasa a IX-a 1 x 1 a) Demonstrați inegalitatea 1, x (0, 1) x x b) Demonstrați că, dacă a 1, a,, a n (0, 1) astfel încât a 1 +a + +a n = 1, atunci: a +a 3 + +a n a1 +a 3 + +a n a1 +a + +a n 1 + + + < 1

Διαβάστε περισσότερα

Algoritmi Divide-et-Impera Structura unui algoritm divide-et-impera divide: impera: combina: Utilizarea cea mai frecventa

Algoritmi Divide-et-Impera Structura unui algoritm divide-et-impera divide: impera: combina: Utilizarea cea mai frecventa Algoritmi Divide-et-Impera una din tehnicile de baza pt designul algoritmilor reduce complexitatea: cel mai des de la n la log(n), de la n 2 la n log(n) etc Structura unui algoritm divide-et-impera divide:

Διαβάστε περισσότερα

Ecuatii trigonometrice

Ecuatii trigonometrice Ecuatii trigonometrice Ecuatiile ce contin necunoscute sub semnul functiilor trigonometrice se numesc ecuatii trigonometrice. Cele mai simple ecuatii trigonometrice sunt ecuatiile de tipul sin x = a, cos

Διαβάστε περισσότερα

Sisteme liniare - metode directe

Sisteme liniare - metode directe Sisteme liniare - metode directe Radu T. Trîmbiţaş 27 martie 2016 1 Eliminare gaussiană Să considerăm sistemul liniar cu n ecuaţii şi n necunoscute Ax = b, (1) unde A K n n, b K n 1 sunt date, iar x K

Διαβάστε περισσότερα

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R În cele ce urmează, vom studia unele proprietăţi ale mulţimilor din R. Astfel, vom caracteriza locul" unui punct în cadrul unei mulţimi (în limba

Διαβάστε περισσότερα

VII.2. PROBLEME REZOLVATE

VII.2. PROBLEME REZOLVATE Teoria Circuitelor Electrice Aplicaţii V PROBEME REOVATE R7 În circuitul din fiura 7R se cunosc: R e t 0 sint [V] C C t 0 sint [A] Se cer: a rezolvarea circuitului cu metoda teoremelor Kirchhoff; rezolvarea

Διαβάστε περισσότερα

FLUXURI MAXIME ÎN REŢELE DE TRANSPORT. x 4

FLUXURI MAXIME ÎN REŢELE DE TRANSPORT. x 4 FLUXURI MAXIME ÎN REŢELE DE TRANSPORT Se numeşte reţea de transport un graf în care fiecărui arc îi este asociat capacitatea arcului şi în care eistă un singur punct de intrare şi un singur punct de ieşire.

Διαβάστε περισσότερα

1. Tehnici de programare

1. Tehnici de programare 1.1. Analiza algoritmilor 1. Tehnici de programare Prin analiza unui algoritm se identifică resursele necesare pentru executarea algoritmului: timpul de execuţie şi memoria. Analiza algoritmilor este necesară

Διαβάστε περισσότερα

III. Reprezentarea informaţiei în sistemele de calcul

III. Reprezentarea informaţiei în sistemele de calcul Metode Numerice Curs 3 III. Reprezentarea informaţiei în sistemele de calcul III.1. Reprezentarea internă a numerelor întregi III. 1.1. Reprezentarea internă a numerelor întregi fără semn (pozitive) Reprezentarea

Διαβάστε περισσότερα

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită. Trignmetrie Funcţia sinus sin : [, ] este peridică (periada principală T * = ), impară, mărginită. Funcţia arcsinus arcsin : [, ], este impară, mărginită, bijectivă. Funcţia csinus cs : [, ] este peridică

Διαβάστε περισσότερα

4. CIRCUITE LOGICE ELEMENTRE 4.. CIRCUITE LOGICE CU COMPONENTE DISCRETE 4.. PORŢI LOGICE ELEMENTRE CU COMPONENTE PSIVE Componente electronice pasive sunt componente care nu au capacitatea de a amplifica

Διαβάστε περισσότερα

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3) BARAJ DE JUNIORI,,Euclid Cipru, 8 mi 0 (brjul ) Problem Arătţi că dcă, b, c sunt numere rele cre verifică + b + c =, tunci re loc ineglitte xy + yz + zx Problem Fie şi b numere nturle nenule Dcă numărul

Διαβάστε περισσότερα

Problema a II - a (10 puncte) Diferite circuite electrice

Problema a II - a (10 puncte) Diferite circuite electrice Olimpiada de Fizică - Etapa pe judeţ 15 ianuarie 211 XI Problema a II - a (1 puncte) Diferite circuite electrice A. Un elev utilizează o sursă de tensiune (1), o cutie cu rezistenţe (2), un întrerupător

Διαβάστε περισσότερα

Matrice. Determinanti. Sisteme liniare

Matrice. Determinanti. Sisteme liniare Matrice 1 Matrice Adunarea matricelor Înmulţirea cu scalar. Produsul 2 Proprietăţi ale determinanţilor Rangul unei matrice 3 neomogene omogene Metoda lui Gauss (Metoda eliminării) Notiunea de matrice Matrice

Διαβάστε περισσότερα

1. Sisteme de ecuaţii liniare Definiţia 1.1. Fie K un corp comutativ. 1) Prin sistem de m ecuaţii liniare cu n necunoscute X 1,...

1. Sisteme de ecuaţii liniare Definiţia 1.1. Fie K un corp comutativ. 1) Prin sistem de m ecuaţii liniare cu n necunoscute X 1,... 1. Sisteme de ecuaţii liniare Definiţia 1.1. Fie K un corp comutativ. 1) Prin sistem de m ecuaţii liniare cu n necunoscute X 1,..., X n şi coeficienţi în K se înţelege un ansamblu de egalităţi formale

Διαβάστε περισσότερα

GEOMETRIE PLANĂ TEOREME IMPORTANTE ARII. bh lh 2. abc. abc. formula înălţimii

GEOMETRIE PLANĂ TEOREME IMPORTANTE ARII. bh lh 2. abc. abc. formula înălţimii GEOMETRIE PLNĂ TEOREME IMPORTNTE suma unghiurilor unui triunghi este 8º suma unghiurilor unui patrulater este 6º unghiurile de la baza unui triunghi isoscel sunt congruente într-un triunghi isoscel liniile

Διαβάστε περισσότερα

Subiecte Clasa a VIII-a

Subiecte Clasa a VIII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

Διαβάστε περισσότερα

Subiecte Clasa a V-a

Subiecte Clasa a V-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

Διαβάστε περισσότερα

Eficienta algoritmilor

Eficienta algoritmilor Eficienta algoritmilor În cursul de introducere am menţionat că, oricât de rapid ar deveni un calculator, sau oricât de mult s-ar ieftini memoria, eficienţa va fi un factor decisiv în alegerea unui algoritm.

Διαβάστε περισσότερα

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1 FNCȚ DE ENERGE Fie un n-port care conține numai elemente paive de circuit: rezitoare dipolare, condenatoare dipolare și bobine cuplate. Conform teoremei lui Tellegen n * = * toate toate laturile portile

Διαβάστε περισσότερα

chip and be conquered - b subprobleme de dimensiune n-c Exercitiu: Dati exemple de algoritmi care au recurente de tipul celor de mai sus.

chip and be conquered - b subprobleme de dimensiune n-c Exercitiu: Dati exemple de algoritmi care au recurente de tipul celor de mai sus. \ Determinarea complexitatii algoritmilor numararea este in general simpla pe algoritmi nerecursivi: identificam operatiile (critice) si de cate ori se executa acestea (v. insertion sort in laboratorul

Διαβάστε περισσότερα

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)). Teoremă. (Y = f(x)). Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism Demonstraţie. f este continuă pe X: x 0 X, S Y (f(x 0 ), ε), S X (x 0, ε) aşa ca f(s X (x 0, ε)) = S Y (f(x 0 ), ε) : y

Διαβάστε περισσότερα

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER 2. Circuite logice 2.4. Decodoare. Multiplexoare Copyright Paul GASNER Definiţii Un decodor pe n bits are n intrări şi 2 n ieşiri; cele n intrări reprezintă un număr binar care determină în mod unic care

Διαβάστε περισσότερα

Profesor Blaga Mirela-Gabriela DREAPTA

Profesor Blaga Mirela-Gabriela DREAPTA DREAPTA Fie punctele A ( xa, ya ), B ( xb, yb ), C ( xc, yc ) şi D ( xd, yd ) în planul xoy. 1)Distanţa AB = (x x ) + (y y ) Ex. Fie punctele A( 1, -3) şi B( -2, 5). Calculaţi distanţa AB. AB = ( 2 1)

Διαβάστε περισσότερα

Proiectarea algoritmilor: Programare dinamică

Proiectarea algoritmilor: Programare dinamică Proiectarea algoritmilor: Programare dinamică Dorel Lucanu Faculty of Computer Science Alexandru Ioan Cuza University, Iaşi, Romania dlucanu@info.uaic.ro PA 2014/2015 D. Lucanu (FII - UAIC) Programare

Διαβάστε περισσότερα

6 n=1. cos 2n. 6 n=1. n=1. este CONV (fiind seria armonică pentru α = 6 > 1), rezultă

6 n=1. cos 2n. 6 n=1. n=1. este CONV (fiind seria armonică pentru α = 6 > 1), rezultă Semiar 5 Serii cu termei oarecare Probleme rezolvate Problema 5 Să se determie atura seriei cos 5 cos Soluţie 5 Şirul a 5 este cu termei oarecare Studiem absolut covergeţa seriei Petru că cos a 5 5 5 şi

Διαβάστε περισσότερα

Cursul 11. Cuplaje. Sisteme de reprezentanti distincţi. Arbori de acoperire. Enumerarea tuturor arborilor cu număr fixat de noduri.

Cursul 11. Cuplaje. Sisteme de reprezentanti distincţi. Arbori de acoperire. Enumerarea tuturor arborilor cu număr fixat de noduri. Cuplaje. Sisteme de reprezentanti distincţi. Arbori de acoperire. Enumerarea tuturor arborilor cu număr fixat de noduri 17 decembrie 2016 Cuprinsul acestui curs Cuplaje Cuplaj perfect, maxim, maximal Cale

Διαβάστε περισσότερα

Seminar Algebra. det(a λi 3 ) = 0

Seminar Algebra. det(a λi 3 ) = 0 Rezolvari ale unor probleme propuse "Matematica const în a dovedi ceea ce este evident în cel mai puµin evident mod." George Polya P/Seminar Valori si vectori proprii : Solutie: ( ) a) A = Valorile proprii:

Διαβάστε περισσότερα

Principiul Inductiei Matematice.

Principiul Inductiei Matematice. Principiul Inductiei Matematice. Principiul inductiei matematice constituie un mijloc important de demonstratie in matematica a propozitiilor (afirmatiilor) ce depind de argument natural. Metoda inductiei

Διαβάστε περισσότερα