You are on page 1of 62

Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Rekurzija
Softwersko Inženjerstvo

Zlatko Petrović

April 1, 2008

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primeri rekurzije – 1/3


Uprosti razlomak:
2
2
1+ 2
1+ 1+···

Rešenje:
2
y= y 2 + y = 2, y2 + y − 2 = 0
1+y


−1 ± 1+4·2 −1 ± 3
y1,2 = = , y1 = 1, y2 = −2
2 2

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primeri rekurzije – 1/3


Uprosti razlomak:
2
2
1+ 2
1+ 1+···

Rešenje:
2
y= y 2 + y = 2, y2 + y − 2 = 0
1+y


−1 ± 1+4·2 −1 ± 3
y1,2 = = , y1 = 1, y2 = −2
2 2

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primeri rekurzije – 1/3


Uprosti razlomak:
2
2
1+ 2
1+ 1+···

Rešenje:
2
y= y 2 + y = 2, y2 + y − 2 = 0
1+y


−1 ± 1+4·2 −1 ± 3
y1,2 = = , y1 = 1, y2 = −2
2 2

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primeri rekurzije – 2/3

Koliki je ekvivalentni otpor?

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primeri rekurzije – 3/3


Rešenje

R1 · X
X = R2 + , ⇒ R1 · X + X 2 = R2 · X + R1 · R2 + R1 · X
R1 + X
odnosno:
q
R2 ± R22 + 4 · R1 · R2
X 2 − R2 · X − R1 · R2 = 0, X1,2 =
2
Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Rekurzivne formule – 1/3

Matematička definicija faktorijela:

n! = n · (n − 1)!, 1! = 0! = 1

Kako bi izgledala funkcija koja izračunava faktorijele u C-u?

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Rekurzivne formule – 1/3

Matematička definicija faktorijela:

n! = n · (n − 1)!, 1! = 0! = 1

Kako bi izgledala funkcija koja izračunava faktorijele u C-u?

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Rekurzivne formule – 2/3

#include <stdio.h>

long factr(int n), factnr(int n);

int main()
{
int n;
printf("Za koji broj se izracunava faktorijel? -- ");
scanf("%d",&n);
printf("\n%d! = %d -- rekurzivno\n",n,factr(n));
printf("\n%d! = %d -- NErekurzivno\n\n",n,factnr(n));
system("PAUSE");
return 0;
}
Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Rekurzivne formule – 3/3

long factr(int n) {
long answ;
if(n == 1) return(1);
answ = factr(n-1)*n;
return(answ);
}

long factnr(int n) {
long answ=1; int t;
for(t=1; t<=n; t++) answ *=t;
return(answ);
}
Rekurzija se uvek može zameniti petljom ako se dešava
na zadnjoj naredbi!
Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 1/21


Programirati rešenje premeštanja hanojskih kula. Hanojske kule se
sastoje iz obručeva različitog prečnika složenih na vertikalni štap
tako da iznad većeg obruča dolazi manji. Prebacivanje se vrši sa
jednog štapa na drugi uz pomoć rezervnog štapa. Prilikom
prebacivanja veći obruč ne sme nikada biti iznad manjeg.

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 2/21

Postupak izračunavanja rezervnog štapa:


6
R=
sa · na
Algoritam:
1 prebaci sa štapa sa na rezervni štap (n-1) obruč.
2 prebaci n-ti (samo jedan) obruč sa štapa sa na štap na.
3 prebaci (n-1) obruč sa rezervnog štapa na štap na.
Gornja definicija je rekurzivna, prekid rekurzije se dešava kada se
doje do obruča sa brojem 1 (najmanji obruč).

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 2/21

Postupak izračunavanja rezervnog štapa:


6
R=
sa · na
Algoritam:
1 prebaci sa štapa sa na rezervni štap (n-1) obruč.
2 prebaci n-ti (samo jedan) obruč sa štapa sa na štap na.
3 prebaci (n-1) obruč sa rezervnog štapa na štap na.
Gornja definicija je rekurzivna, prekid rekurzije se dešava kada se
doje do obruča sa brojem 1 (najmanji obruč).

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 2/21

Postupak izračunavanja rezervnog štapa:


6
R=
sa · na
Algoritam:
1 prebaci sa štapa sa na rezervni štap (n-1) obruč.
2 prebaci n-ti (samo jedan) obruč sa štapa sa na štap na.
3 prebaci (n-1) obruč sa rezervnog štapa na štap na.
Gornja definicija je rekurzivna, prekid rekurzije se dešava kada se
doje do obruča sa brojem 1 (najmanji obruč).

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 2/21

Postupak izračunavanja rezervnog štapa:


6
R=
sa · na
Algoritam:
1 prebaci sa štapa sa na rezervni štap (n-1) obruč.
2 prebaci n-ti (samo jedan) obruč sa štapa sa na štap na.
3 prebaci (n-1) obruč sa rezervnog štapa na štap na.
Gornja definicija je rekurzivna, prekid rekurzije se dešava kada se
doje do obruča sa brojem 1 (najmanji obruč).

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 2/21

Postupak izračunavanja rezervnog štapa:


6
R=
sa · na
Algoritam:
1 prebaci sa štapa sa na rezervni štap (n-1) obruč.
2 prebaci n-ti (samo jedan) obruč sa štapa sa na štap na.
3 prebaci (n-1) obruč sa rezervnog štapa na štap na.
Gornja definicija je rekurzivna, prekid rekurzije se dešava kada se
doje do obruča sa brojem 1 (najmanji obruč).

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 3/21

#include <stdio.h>

int main()
{
int n, sa, na;
printf("Koliko ima obruceva u kuli: ");
scanf("%d",&n);
printf("\nSa kojeg se stapa premesta kula: ");
scanf("%d",&sa);
printf("\nNa koji se stap premesta kula: ");
scanf("%d",&na);
premesti(sa,na,n);
printf("\n\n\n");
system("PAUSE"); return 0; }
Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 4/21

void premesti(int sa,int na,int n)


{
int rez;
if(n==1) {
printf("\n Premesti sa stapa %d na stap %d obruc [%d]",sa,na,1);
return ;
}
rez = 6/(sa*na);
premesti(sa,rez,n-1);
printf("\n Premesti sa stapa %d na stap %d obruc [%d]",sa,na,n);
premesti(rez,na,n-1);
return ;
}

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 5/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 6/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 7/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 8/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 9/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 10/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 11/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 12/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 13/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 14/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 15/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 16/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 17/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 18/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 19/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 20/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Hanojske kule – 21/21

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Realizacija rekurzije u računaru – 1/1

Pre sopstvenog poziva


smeštaju se sve lokalne promenjive na stek
smeštaju se svi argumenti programa na stek
smeštaju se registri na stek
startuje se procedura sa novim argumentima i parametrima
Kada se tokom izvršenja koda naidje na return
skidaju se lokalne promenjive sa steka
skidaju se argumenti sa steka
ažurira se sadržaj registara
počinje egzekucija sa sledeće instrukcije nakon poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 1/9


Slika pokazuje jednodimenzionalnu tablu sa 2 · n + 1 poljem.
Nalevo su po poljima smešteni crni žetoni, a nadesno beli.
Rasporedjen je jednak broj crnih i belih žetona, tako da je polje u
sredini prazno. Nadji postupak za premeštanje svih belih žetona
nalevo i svih crnih žetona nadesno. Žeton se može premestiti na
prazno polje samo ako mu je direktni sused, ili preskakanjem samo
jednog žetona. Žetoni sa leve strane table se mogu kretati samo
nadesno, a žetoni sa desne strane table samo nalevo.

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 2/9


#include <stdio.h>

#define MAXZET 34
int pomeranje(int n, char tabla[]);
int kraj(int n,char tabla[]);

int main()
{
char tabla[MAXZET];
int n, i;
printf("\nBroj zetona iste boje : "); scanf("%d",&n);
for(i=0;i<=n;tabla[i]=’X’,tabla[i+n+1]=’O’,i++) ;
tabla[n] = ’ ’;
tabla[2*n+1]=’\0’;
if(pomeranje(n,tabla)) prikazi(n,tabla);
printf("\n\n\n"); system("PAUSE"); return 0; }
Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 3/9

Funkcija prikazi prikazuje tabelu sa žetonima:

int prikazi(int n, char tabl[])


{
int i;
printf("\n ");
for(i=0; i<=2*n; printf("%c",tabl[i]),i++) ;
return 0;
}

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 4/9

Funkcija kraj proverava da li su žetoni na konačnom odredištu,


kada vraća 1 inače 0:

int kraj(int n,char tabl[])


{
int i;
for(i=0; i < n ;i++)
if(tabl[i] != ’O’ || tabl[i+n+1] !=’X’) return 0;
return 1;
}

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 5/9

Funkcija pomeranje utvrdjuje da li je neko pomeranje moguće i


ako jeste izvršava ga preko poziva funkcije pomeri. Funkcija
pomeri poziva ponovo pomeranje da utvrdi koja su pomeranja
dalje moguća. Rekurzija se ostvarjue sa:

pomeranje–pomeri–pomeranje!

Raspored žetona se kopira nakon svakog poziva

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 6/9

int pomeranje(int n,char tabla[])


{
int i;
for(i=0;i<=2*n;i++) if(tabla[i]==’ ’) break;

if(i>0 && tabla[i-1]==’X’)


if(pomeri(i-1,i,tabla,n)) return 1;
if(i>1 && tabla[i-2]==’X’)
if(pomeri(i-2,i,tabla,n)) return 1;
if(i<2*n && tabla[i+1]==’O’)
if(pomeri(i+1,i,tabla,n)) return 1;
if(i<2*n-1 && tabla[i+2]==’O’)
if(pomeri(i+2,i,tabla,n)) return 1;
return 0;
}
Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 7/9

Funkcija pomeri kopira tabelu i vrši zadato pomeranje žetona.


Zatim proverava da li je time rešen zadatak, ukoliko nije poziva
pomeranje da pronadje nova pomeranja!

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 8/9

int pomeri( int sa, int na, char tabla[],int n)


{
char mem, tabl[MAXZET];
strcpy(tabl,tabla);
mem = tabl[na]; tabl[na] = tabl[sa]; tabl[sa] = mem;

if( kraj(n,tabl) ) {
prikazi(n,tabl);
return 1; }

if( pomeranje(n,tabl) ) {
prikazi(n,tabl);
return 1; }
return 0;
}

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Primer rekurzije sa iscrpljivanjem – 9/9

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Zaključak o prikazanim rekurzivnim algoritmima – 1/2

Faktorijeli i Hanojske kule se rešavaju jednoznačno (bez


lutanja)
Problem sa žetonima se rešava probanjem svih varijanti i
iznalaženjem one (ako postoji) koja je rešenje (iscrpljuju se
sve mogućnosti)
Oba algoritma se mogu prikazati stablom pri čemu je stablo
za faktorijele i Hanojske kule krajnje jednostavno!

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Zaključak o prikazanim rekurzivnim algoritmima – 1/2

Faktorijeli i Hanojske kule se rešavaju jednoznačno (bez


lutanja)
Problem sa žetonima se rešava probanjem svih varijanti i
iznalaženjem one (ako postoji) koja je rešenje (iscrpljuju se
sve mogućnosti)
Oba algoritma se mogu prikazati stablom pri čemu je stablo
za faktorijele i Hanojske kule krajnje jednostavno!

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Zaključak o prikazanim rekurzivnim algoritmima – 1/2

Faktorijeli i Hanojske kule se rešavaju jednoznačno (bez


lutanja)
Problem sa žetonima se rešava probanjem svih varijanti i
iznalaženjem one (ako postoji) koja je rešenje (iscrpljuju se
sve mogućnosti)
Oba algoritma se mogu prikazati stablom pri čemu je stablo
za faktorijele i Hanojske kule krajnje jednostavno!

Zlatko Petrović
Rekurzija
Primeri Rekurzivne formule Hanojske kule Realizacija Uzaludni pokusaji Zaključak

Zaključak o prikazanim rekurzivnim algoritmima – 2/2

Zlatko Petrović
Rekurzija
Glavolomke

Deo I

Problemi za razmišljanje

Zlatko Petrović
Rekurzija
Glavolomke – 1/4

Glavolomke
O čemu bi sve trebalo voditi računa pri rešavanju sledećih
problema pomoću računara?

http://www.puzzleworld.org/SlidingBlockPuzzles/Default.htm
Glavolomke

Glavolomke – 2/4
Quzzle
Gospodin Luis, ljubitelj rešavanja zagonetki sa klizajućim
elementima, programirao je računar da iznadje raspored pločica,
koji je najteže rešiti. Napokon je dobio najkomplikovaniju
zagonetku na tabli od 4 × 5 polja. Uslovi postavljeni kompjuteru
su da ima samo tri tipa pločica 1 × 1, 2 × 2 i 1 × 2 ili 2 × 1.
Zakonetku možete kupiti za malo manje od 20$. Gospodin Luis je
umeo da naplati svoj hobi! Premestiti kvadrat u donji desni ugao!

Zlatko Petrović
Rekurzija
Glavolomke

Glavolomke – 3/4

Zlatko Petrović
Rekurzija
Glavolomke

Glavolomke – 4/4

Zlatko Petrović
Rekurzija

You might also like