Referate Meniu
Astronomie
Biologie
Chimie
Desen
Diverse
Drept
Economie
Engleza
Filozofie
Fizica
Franceza
Geografie
Germana
Informatica
Istorie
Italiana
Marketing
Matematica
Medicina
Muzica
Psihologie
Romana
Romana1
Spaniola


 


referat, proiect, rezumat, caracterizare, lucrare de nota 10 despre:

PROBLEMA TURNURILOR DIN HANOI, Prezentarea algoritmului rezolvarii

PROBLEMA TURNURILOR DIN HANOI

Prezentarea algoritmului rezolvarii

36575ktb68fnv2b 36575ktb68fnv2b Fie trei tije verticale notate A,B,C .Pe tija A se gasesc asezate n discuri de diametre diferite ,in ordinea crescatoare a diametrelor,privind de sus in jos . Initial ,tijele B si C sunt goale .Sa se afiseze toate mutarile prin care discurile de pe tija A se muta pe tija B , in aceeasi ordine ,folosind ca tija de manevra C si resspectand urmatoarele reguli:

4la fiecare pas se muta un singur disc;

4un disc se poate aseza numai peste un disc cu diametrul mai mare .

36575ktb68fnv2b Rezolvarea acestei probleme se bazeaza pe urmatoarele considerente logice :

36575ktb68fnv2b -daca n=1 ,atunci mutarea este immediata AàB(mut discul de pe A pe B); 36575ktb68fnv2b

36575ktb68fnv2b 4daca n=2,atunci sirul mutarilor este : AàC,AàB,CàB;

36575ktb68fnv2b 4daca n>2 procedam astfel :

36575ktb68fnv2b 36575ktb68fnv2b -mut (n-1)discuri AàC;

36575ktb68fnv2b 36575ktb68fnv2b -mut un disc AàB ;

36575ktb68fnv2b 36575ktb68fnv2b -mut cele (n-1)discuri CàB.

36575ktb68fnv2b

36575ktb68fnv2b Observam ca problema initiala se descompune in trei subprobleme mai simple ,similare problemei initiale: mut (n-1)discuri AàC ,mut ultimul disc pe B ,mut cele (n-1)discuri C-->B.Dimensiunile acestor subprobleme sunt : n-1,1,n-1.

Aceste subprobleme sunt independente ,deoarece tijele initial (pe 36575ktb68fnv2b care sunt dispuse discurile ),tijele finale si tijele intermediare sunt diferite.Notam H(n,A,B,C)=sirul mutarilor a n discuri de pe A pe B, folosind C.

36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b

PENTRU 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b

36575ktb68fnv2b n=1 AàB

36575ktb68fnv2b n>1 H(n,A,B,C)= H(n-1,A,C,B),AB, H(n-1,C,B,A) 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b

36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b

36575ktb68fnv2b program turnurile _hanoi;

36575ktb68fnv2b 36575ktb68fnv2b var n:byte;

36575ktb68fnv2b 36575ktb68fnv2b procedure hanoi(n:byte;a,b,c:char);

36575ktb68fnv2b 36575ktb68fnv2b begin

36575ktb68fnv2b 36575ktb68fnv2b if n=1 then writeln(a,’à’,b)

36575ktb68fnv2b 36575ktb68fnv2b else begin

36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b hanoi(n-1,a,c,b);

36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b writeln(a,’à’,b);

36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b hanoi(n-1,c,b,a);

36575ktb68fnv2b 36575ktb68fnv2b 36575ktb68fnv2b end;

36575ktb68fnv2b 36575ktb68fnv2b end;

36575ktb68fnv2b 36575ktb68fnv2b begin

36575ktb68fnv2b 36575ktb68fnv2b write(‘nr discuri pe tija A =’);readln(n);

36575ktb68fnv2b 36575ktb68fnv2b writeln(‘mutarile sunt urmatoarele :’);

36575ktb68fnv2b 36575ktb68fnv2b hanoi(n,’A’,’B’,’C’);

36575ktb68fnv2b 36575ktb68fnv2b readln;readln;

36575ktb68fnv2b 36575ktb68fnv2b end.