SlideShare uma empresa Scribd logo
1 de 14
Metoda de programare 
“Divide et Impera” 
Teodor Delaport 
Clasa XI-a A
CUPRINS 
 Prezentare generală 
 Aplicaţii 
 Valoarea maximă dintr-un vector 
 Sortarea prin interclasare 
 Sortarea rapidă 
 Tunurile din Hanoi 
 Fractali-Curba lui Koch
PREZENTARE GENERALĂ
Divide et impera 
 Divide et impera se bazează pe principiul 
descompunerii problemei în două sau mai multe 
subprobleme (mai uşoare), care se rezolvă, iar 
soluţia pentru problema iniţială se obţine combinând 
soluţiile subproblemelor. De multe ori, 
subproblemele sunt de acelaşi tip şi pentru fiecare 
din ele se poate aplica aceeaşi tactică a 
descompunerii în (alte) subprobleme, până când (în 
urma descompunerilor repetate) se ajunge la 
probleme care admit rezolvare imediată.
APLICATIA 1 
VALOAREA MAXIMĂ DINTR-UN 
VECTOR
Apasă aici pentru a 
vizualiza executabilul 
Valoarea maximă dintr-un vector 
Se citeste un vector cu n componente, numere naturale. Se 
cere să se tipărească valoarea maximă. 
 Rezolvare. Trebuie tipărită valoarea maximă dintre numerele 
reţinute în vector de la i la j (iniţial, i=1 şi j=n). 
Pentru aceasta, procedăm astfel: 
Dacă i=j, valoarea maximă va fi v[i]; 
Contrar, vom împărţi vectorul în doi vectori (primul vector va 
conţine componentele de la i la (i+j) div 2, al doilea va conţine 
componentele de la (i+j) div 2+1 la j, rezolvăm subproblemele 
(aflăm maximul pentru fiecare din ele), iar soluţia problemei va fi 
data de valoarea maximă dintre rezultatele celor două 
subprobleme. 
Apasă aici 
pentru a 
vedea un 
exemplu
TUNURILE DIN HANOI
Tunurile din Hanoi 
î í  Se dau ì 
3 tije simbolizate prin a, b, c. Pe tija a se găsesc discuri de diametre diferite, aşezate în 
ordine descrescătoare a diametrelor privite de jos în sus. Se cere să se mute discurile de pe tija a pe 
tija b, utilizând ca tijă intermediară tija c, respectând următoarele reguli: 
- la fiecare pas se mută un singur disc 
- nu este permis să se aşeze un disc cu diametrul mai mare peste un disc cu diametrul mai mic. 
 Rezolvare. 
Dacă n=1, se face mutarea ab, adică se mută discul de pe tija a pe tija b. 
Dacă n=2, se fac mutările ac, ab, cb. 
În cazul în care n>2, problema se complică. Notam cu H(n, a, b, c) şirul mutărilor celor n discuri de pe 
tija a pe tija b, utilizând ca tijă intermediara, tija c. 
Conform strategiei DIVIDE ET IMPERA, încercam să descompunem problema în alte două 
subprobleme de acelaşi tip, urmând apoi combinarea soluţiilor. În acest sens, observăm că mutarea 
celor n discuri de pe tija a pe tija b, utilizând ca tijă intermediara tija c, este echivalentă cu: 
mutarea a n-1 discuri de pe tija a pe tija c, utiliyând ca tijă intermediară tija b; mutarea discului rămas 
pe tija b; mutarea a n-1 discuri de pe tija c pe tija b, utilizând ca tija intermediara tija a. 
Parcurgerea celor trei etape permite definirea recursivă a şirului H (n, a, b, c) astfel: 
ab , n 
= 
1 
H(n, a, b, c)= H ( n - 1, a , c , b ) , ab , H ( n - 1, c , b , a ) , n 
> 
1 
Apasă aici 
pentru a 
vedea un 
exemplu
AB AC BC AB CA CB AB 
A B C
FRACTALI
Fractali 
 Se consideră un triunghi echilateral. Fiecare latură a 
sa se transformă astfel: 
 Fiecare latură a acestui poligon se transformă din 
nou, după aceeaşi regulă. Se cere să se vizualizeze 
figura obţinută după ls paşi ( număr citit de la 
tastatură).
Programul principal va apela, pentru fiecare segment care 
constituie o latură a triunghiului, o procedură numită generator. 
Algoritmul care stă la baza procedurii generator: 
 Se porneşte de la segmentul AB; 
 Se determină coordonatele punctului care constituie vârful 
triunghiului echilateral( V) 
 În cazul în care segmentul nu a fost transformat de ls ori, se 
apelează generator pentru segmentele AC, CV, VD, DB 
 Contrar, se apelează procedura care trasează linia frântă 
ACVDB
SITE-URI DE INFORMARE 
 http://ro.wikipedia.org/wiki 
 www.didactic.ro 
 www.subiecte2008.edu.ro 
 www.ginfo.ro 
 www.referate.ro 
 www.edu.ro
RECAPITULARE 
1. In ce consta metoda Divide et Impera? 
2. Tunurile din Hanoi. Pornind de la definirea recursiva a 
sirului 
 H(n,a,b,c)= ab, ptr. n=1, 
 H(n-1, a,c,b), ab, H(n-1, c,b,a) ptr. n>1 
pentru n=3 care sunt mutarile discurilor?

Mais conteúdo relacionado

Mais procurados (19)

Metoda bisectiei
Metoda bisectieiMetoda bisectiei
Metoda bisectiei
 
Piramida.sasu aurica
Piramida.sasu auricaPiramida.sasu aurica
Piramida.sasu aurica
 
Sinteza geometriei cls. a vii a
Sinteza geometriei cls. a vii aSinteza geometriei cls. a vii a
Sinteza geometriei cls. a vii a
 
Clasa a viii a
Clasa a viii aClasa a viii a
Clasa a viii a
 
MBR
MBRMBR
MBR
 
Asemanarea triunghiurilor
Asemanarea triunghiurilorAsemanarea triunghiurilor
Asemanarea triunghiurilor
 
Triunghiul
TriunghiulTriunghiul
Triunghiul
 
Metoda-coardei
Metoda-coardeiMetoda-coardei
Metoda-coardei
 
Linia mijlocie in_trapez
Linia mijlocie in_trapezLinia mijlocie in_trapez
Linia mijlocie in_trapez
 
MN
MNMN
MN
 
Metoda bisecției
Metoda bisecțieiMetoda bisecției
Metoda bisecției
 
MBc
MBcMBc
MBc
 
Calcul de arii si volume
Calcul de arii si volumeCalcul de arii si volume
Calcul de arii si volume
 
Patrulatere VII
Patrulatere VIIPatrulatere VII
Patrulatere VII
 
Arii Cls A VII - Aaa
Arii Cls A VII - AaaArii Cls A VII - Aaa
Arii Cls A VII - Aaa
 
SMC
SMCSMC
SMC
 
Metoda bisecţiei
Metoda bisecţieiMetoda bisecţiei
Metoda bisecţiei
 
newton
newtonnewton
newton
 
Prisma
PrismaPrisma
Prisma
 

Semelhante a Proiect informatica liceu DIVIDE ET IMPERA

Semelhante a Proiect informatica liceu DIVIDE ET IMPERA (6)

Metoda backtracking(1)
Metoda backtracking(1)Metoda backtracking(1)
Metoda backtracking(1)
 
Calculul numeric teorie
Calculul numeric teorieCalculul numeric teorie
Calculul numeric teorie
 
Opt
OptOpt
Opt
 
Proiect tic
Proiect tic Proiect tic
Proiect tic
 
6207247 probleme-de-algebra-liniara-dumitru-busneag
6207247 probleme-de-algebra-liniara-dumitru-busneag6207247 probleme-de-algebra-liniara-dumitru-busneag
6207247 probleme-de-algebra-liniara-dumitru-busneag
 
Compunerea oscilatiilor perpendiculare
Compunerea oscilatiilor perpendiculareCompunerea oscilatiilor perpendiculare
Compunerea oscilatiilor perpendiculare
 

Mais de Teo Delaport

Energia in sistemele biologice
Energia in sistemele biologice Energia in sistemele biologice
Energia in sistemele biologice Teo Delaport
 
Efectul fotoelectric-extern
Efectul fotoelectric-extern Efectul fotoelectric-extern
Efectul fotoelectric-extern Teo Delaport
 
Reactii rapide si reactii lente
Reactii rapide si reactii lenteReactii rapide si reactii lente
Reactii rapide si reactii lenteTeo Delaport
 
Ungaria prezentare generala
Ungaria prezentare generalaUngaria prezentare generala
Ungaria prezentare generalaTeo Delaport
 
Ungaria prezentare generala
Ungaria prezentare generalaUngaria prezentare generala
Ungaria prezentare generalaTeo Delaport
 
Marketing Thailanda,date genrale
Marketing Thailanda,date genraleMarketing Thailanda,date genrale
Marketing Thailanda,date genraleTeo Delaport
 
Proiect chimie elemente galvanice
Proiect chimie elemente galvaniceProiect chimie elemente galvanice
Proiect chimie elemente galvaniceTeo Delaport
 
Functii trigonometrice simple
Functii trigonometrice simpleFunctii trigonometrice simple
Functii trigonometrice simpleTeo Delaport
 
Ion luca caragiale
Ion luca caragialeIon luca caragiale
Ion luca caragialeTeo Delaport
 
Turismul in Thailanda
Turismul in ThailandaTurismul in Thailanda
Turismul in ThailandaTeo Delaport
 
Referat chimie Benzen
Referat chimie BenzenReferat chimie Benzen
Referat chimie BenzenTeo Delaport
 

Mais de Teo Delaport (14)

Grecia
Grecia Grecia
Grecia
 
Energia in sistemele biologice
Energia in sistemele biologice Energia in sistemele biologice
Energia in sistemele biologice
 
Efectul fotoelectric-extern
Efectul fotoelectric-extern Efectul fotoelectric-extern
Efectul fotoelectric-extern
 
Reactii rapide si reactii lente
Reactii rapide si reactii lenteReactii rapide si reactii lente
Reactii rapide si reactii lente
 
Ungaria prezentare generala
Ungaria prezentare generalaUngaria prezentare generala
Ungaria prezentare generala
 
Ungaria prezentare generala
Ungaria prezentare generalaUngaria prezentare generala
Ungaria prezentare generala
 
Marketing Thailanda,date genrale
Marketing Thailanda,date genraleMarketing Thailanda,date genrale
Marketing Thailanda,date genrale
 
Proiect chimie elemente galvanice
Proiect chimie elemente galvaniceProiect chimie elemente galvanice
Proiect chimie elemente galvanice
 
Titu maiorescu
Titu maiorescuTitu maiorescu
Titu maiorescu
 
Functii trigonometrice simple
Functii trigonometrice simpleFunctii trigonometrice simple
Functii trigonometrice simple
 
Ion luca caragiale
Ion luca caragialeIon luca caragiale
Ion luca caragiale
 
Turismul in Thailanda
Turismul in ThailandaTurismul in Thailanda
Turismul in Thailanda
 
Modele origami
Modele origami Modele origami
Modele origami
 
Referat chimie Benzen
Referat chimie BenzenReferat chimie Benzen
Referat chimie Benzen
 

Proiect informatica liceu DIVIDE ET IMPERA

  • 1. Metoda de programare “Divide et Impera” Teodor Delaport Clasa XI-a A
  • 2. CUPRINS  Prezentare generală  Aplicaţii  Valoarea maximă dintr-un vector  Sortarea prin interclasare  Sortarea rapidă  Tunurile din Hanoi  Fractali-Curba lui Koch
  • 4. Divide et impera  Divide et impera se bazează pe principiul descompunerii problemei în două sau mai multe subprobleme (mai uşoare), care se rezolvă, iar soluţia pentru problema iniţială se obţine combinând soluţiile subproblemelor. De multe ori, subproblemele sunt de acelaşi tip şi pentru fiecare din ele se poate aplica aceeaşi tactică a descompunerii în (alte) subprobleme, până când (în urma descompunerilor repetate) se ajunge la probleme care admit rezolvare imediată.
  • 5. APLICATIA 1 VALOAREA MAXIMĂ DINTR-UN VECTOR
  • 6. Apasă aici pentru a vizualiza executabilul Valoarea maximă dintr-un vector Se citeste un vector cu n componente, numere naturale. Se cere să se tipărească valoarea maximă.  Rezolvare. Trebuie tipărită valoarea maximă dintre numerele reţinute în vector de la i la j (iniţial, i=1 şi j=n). Pentru aceasta, procedăm astfel: Dacă i=j, valoarea maximă va fi v[i]; Contrar, vom împărţi vectorul în doi vectori (primul vector va conţine componentele de la i la (i+j) div 2, al doilea va conţine componentele de la (i+j) div 2+1 la j, rezolvăm subproblemele (aflăm maximul pentru fiecare din ele), iar soluţia problemei va fi data de valoarea maximă dintre rezultatele celor două subprobleme. Apasă aici pentru a vedea un exemplu
  • 8. Tunurile din Hanoi î í  Se dau ì 3 tije simbolizate prin a, b, c. Pe tija a se găsesc discuri de diametre diferite, aşezate în ordine descrescătoare a diametrelor privite de jos în sus. Se cere să se mute discurile de pe tija a pe tija b, utilizând ca tijă intermediară tija c, respectând următoarele reguli: - la fiecare pas se mută un singur disc - nu este permis să se aşeze un disc cu diametrul mai mare peste un disc cu diametrul mai mic.  Rezolvare. Dacă n=1, se face mutarea ab, adică se mută discul de pe tija a pe tija b. Dacă n=2, se fac mutările ac, ab, cb. În cazul în care n>2, problema se complică. Notam cu H(n, a, b, c) şirul mutărilor celor n discuri de pe tija a pe tija b, utilizând ca tijă intermediara, tija c. Conform strategiei DIVIDE ET IMPERA, încercam să descompunem problema în alte două subprobleme de acelaşi tip, urmând apoi combinarea soluţiilor. În acest sens, observăm că mutarea celor n discuri de pe tija a pe tija b, utilizând ca tijă intermediara tija c, este echivalentă cu: mutarea a n-1 discuri de pe tija a pe tija c, utiliyând ca tijă intermediară tija b; mutarea discului rămas pe tija b; mutarea a n-1 discuri de pe tija c pe tija b, utilizând ca tija intermediara tija a. Parcurgerea celor trei etape permite definirea recursivă a şirului H (n, a, b, c) astfel: ab , n = 1 H(n, a, b, c)= H ( n - 1, a , c , b ) , ab , H ( n - 1, c , b , a ) , n > 1 Apasă aici pentru a vedea un exemplu
  • 9. AB AC BC AB CA CB AB A B C
  • 11. Fractali  Se consideră un triunghi echilateral. Fiecare latură a sa se transformă astfel:  Fiecare latură a acestui poligon se transformă din nou, după aceeaşi regulă. Se cere să se vizualizeze figura obţinută după ls paşi ( număr citit de la tastatură).
  • 12. Programul principal va apela, pentru fiecare segment care constituie o latură a triunghiului, o procedură numită generator. Algoritmul care stă la baza procedurii generator:  Se porneşte de la segmentul AB;  Se determină coordonatele punctului care constituie vârful triunghiului echilateral( V)  În cazul în care segmentul nu a fost transformat de ls ori, se apelează generator pentru segmentele AC, CV, VD, DB  Contrar, se apelează procedura care trasează linia frântă ACVDB
  • 13. SITE-URI DE INFORMARE  http://ro.wikipedia.org/wiki  www.didactic.ro  www.subiecte2008.edu.ro  www.ginfo.ro  www.referate.ro  www.edu.ro
  • 14. RECAPITULARE 1. In ce consta metoda Divide et Impera? 2. Tunurile din Hanoi. Pornind de la definirea recursiva a sirului  H(n,a,b,c)= ab, ptr. n=1,  H(n-1, a,c,b), ab, H(n-1, c,b,a) ptr. n>1 pentru n=3 care sunt mutarile discurilor?