In primul rand felicit toti concurentii, incepand cu cei ce au obtinut
punctajul maxim.
Oricum, cei ce nu au rezolvat problema nu trebuie sa fie prea "mahniti",
pentru ca rezolvarea problemei necesita cunoasterea "Principiului lui
Dirichlet", principiu pe care o sa vi-l prezint cu aceasta ocazie.
Oricum, se pare ca cel putin 2 surse care au obtinut punctaj maxim nu au
folosit acest principiu, dar asta nu inseamna ca nu este foarte folositor
in multe probleme. Una dintre surse este a Irinei Dumitrascu, care a folosit
metoda backtracking (sper sa nu ma fi inselat) iar cealalta este a lui
Cristian Opincaru care a folosit algoritmi probabilisti (aici nu ma insel
sigur, ca prea este random la tot pasul...). Oricum algoritmii probabilisti
sunt o "arma" destul de buna pentru concursurile de programare (folosita si
de mine in cateva ocazii cu mult succes), care te poate ajuta in situatia in
care nu cunosti algoritmul exact de rezolvare (cum este si cazul de fata) sau
care poate fi folosita ca alternativa la backtracking sau euristici. Oricum
daca va intereseaza pot sa postez pe lista un articol despre acest subiect.
Dar sa revenim la oile noastre... Adica ale lui Dirichlet.
In continuare o sa puteti citi un articol despre "Principiul lui Dirichlet",
articol preluat in cea mai mare parte din articolul "Principiul cutiei al lui
Dirichlet" publicat de prof. Horia Georgescu in "Gazeta de Informatica",
Nr.9-10/1994. Tot aici veti gasi si rezolvarea problemei date.
Principiul Cutiei al lui DIRICHLET
----------------------------------
"Principiul Cutiei" sau "Principiul lui Dirichlet" sau mai complet
"Principiul Cutiei al lui Dirichlet" a fost enuntat de matematiceanul
Peter Gustav Lejeune Dirichlet (1805-1859):
"Se considera m obiecte care trebuie plasate in n cutii, precum
si un numar natural k cu m>kn. Atunci pentru orice astfel de
plasare va exista o cutie ce va contine cel putin k+1 obiecte."
Principiul este evident, dar in acelasi timp el este de o importanta
deosebita, servind la rezolvarea multor probleme de ordin matematic.
Voi da exemple in acest articol de mai multe probleme ce se rezolva cu
principiul lui Dirichlet, printre care si problema propusa saptamana asta.
+-------------------------------------------------------------------------+
| Problema 1: Fie n un numar natural. Se cere sa se determine un multiplu |
| al sau format numai din cifre de 0 si 1. |
+-------------------------------------------------------------------------+
Rezolvarea problemei se bazeaza bineinteles pe principiul lui Dirichlet.
Pentru aceasta vom considera numerele formate numai din cifre de 1: 1,11,111,
1111,......., 111.....1
|_______|
|
de n ori
Pentru fiecare din aceste n numere aflam restul impartirii la n.
Daca gasim un astfel de numar care la impartirea cu n sa dea restul 0,
problema este rezolvata, solutia fiind chiar numarul in cauza.
Daca nici un astfel de numar nu da restul 0 prin impartirea la n, atunci,
aplicand "Principiul lui Dirichlet" pentru n obiecte (care vor fi resturile),
n-1 cutii (anume resturile posibil de obtinut, de la 1 la n-1) si k=1, atunci
rezulta faptul ca in cel putin o cutie vom avea 2 obiecte, deci cel putin
2 numere vor da acelasi rest prin impartirea cu n.
Fie aceste numere 11.....1 si 11.....1, cu a<b.
|______| |______|
| |
de a ori de b ori
Atunci numarul de forma 11...100...0 va fi bineinteles divizibil cu n.
|____||____|
| |
de b-a ori de a ori
Rezolvarea arata ca problema are intotdeauna solutie.
Problema se poate generaliza pentru a obtine numere formate numai din
cifre de 0 si de b, b=1,2,...9.
+---------------------------------------------------------------------+
| Problema 2: Fie A o multime de n numere naturale. Sa se gaseasca o |
| o submultime a lui A, astfel incat suma elementelor din |
| submultime sa fie divizibila cu n. |
+---------------------------------------------------------------------+
Rezolvarea se bazeaza tot pe principiul lui Dirichlet, dar foloseste un
mic artificiu si anume construirea sumelor partiale.
Definim s[i]=suma a[j], unde vectorul a reprezinta multimea data, iar
j=1,i vectorul s este sirul sumelor partiale.
Calculam apoi pentru fiecare s[i], i=1,n, restul lui s[i] la n.
In caz ca gasim un s[k] cu s[k] mod n=0, atunci inseamna ca suma primelor
k elemente din multime este divizibila cu n si problema este rezolvata.
In caz contrar, aplicand "Principiul lui Dirichlet" ca si in problema
anterioara, vom avea doua sume partiale s[a], s[b] (pp. a<b) care vor da
acelasi rest la impartirea cu n. In acest caz suma numerelor de la i+1 la j
va fi divizibila cu n si problema este rezolvata total.
Si aceasta problema are intotdeauna solutie.
+-------------------------------------+
| Problema 3: "In vreme de razboi... |
+-------------------------------------+
Cine a rezolvat problema, si-a dat seama imediat ca aceasta problema este
chiar problema 2 de mai sus.
Pentru a crea bastionul 1, trebuie sa alegem din cei n soldati, un grup de
b1 soldati a caror "suma" sa fie divizibila cu n, deci chiar problema 2 de
mai sus.
Pentru a crea bastionul 2 trebuie sa alegem din cei n-b1 soldati ramasi,
un grup de b2 soldati a caror "suma" sa fie divizibila cu cei n-b1 soldati
ramasi, deci chiar problema 2 de mai sus aplicata pentru n=n-b1.
In acelasi mod se vor crea si celelalte bastioane.
+--------------------------------------------------------------------------+
| Problema 4: Un candidat la presedintie aflat in turneu electoral are |
| de vizitat un numar de l localitati intr-un numar de z zile. |
| Stiind ca in fiecare zi viziteaza cel putin o localitate, se |
| cere sa se arate ca exista un interval de zile consecutive |
| in care viziteaza exact 2z-l-1 localitati. (2z-l-1>0). |
+--------------------------------------------------------------------------+
Pentru fiecare i=1,z fie Ni numarul de localitati vizitate in primele i
zile.
Problema cere deci gasirea a doi indici i<j a.i. Ni+2z-l-1=Nj.
Acesti doi indici odata gasiti, solutia problemei va fi succesiunea de
zile i+1,i+2,....,j.
Pentru aceasta consideram 2 siruri de numere:
0<N1<N2<.....<Nz=l cu semnificatia descrisa mai sus si
N1+2z-l-1<N2+2z-l-1<...........<Nz+2z-l-1=l+2z-l-1=2z-1
In cele 2 siruri avem un numar de 2z numere naturale care se gasesc in
intervalul [1,2z-1]. Conform "Principiului lui Dirichlet" cel putin 2 din
aceste 2z numere sunt egale. Cum nu se poate ca ambele numere sa apartina
aceluiasi sir (datorita strictei egalitati), rezulta ca exista 2 indici i<j
a.i. Ni+2z-l-1=Nj si problema este rezolvata.
+--------------------------------------------------------------------+
| Problema 5: Se dau (m-1)(n-1)+1 numere naturale distincte. Sa sa |
| arate ca exista cel putin m dintre aceste numere care |
| se divid succesiv unul pe altul sau exista cel putin n |
| dintre aceste numere care nu se divid intre ele. |
| Se cere si succesiunea de numere ce constituie o solu- |
| tie a problemei. |
+--------------------------------------------------------------------+
Rezolvarea problemei presupune aplicarea principiului cutiei in 2
dimensiuni. Se incepe cu ordonarea crescatoare a celor (m-1)(n-1)+1 numere.
Se foloseste o matrice cu (m-1) linii si (n-1) coloane.
Numerele se vor scrie in matrice astfel:
- inscrierea unui numar pe o linie se face pe prima pozitie libera
- se considera ca exista si linia 0 pe care este inscris numarul 1, dar
pe care nu se pot inscrie numerele date
- numarul este inscris pe linia i daca i este cea mai mare valoare pentru
care numarul considerat se divide prin cel putin unul dintre numerele
de pe linia i+1.
Se remarca ca in orice moment numerele de pe aceasi coloana nu se divid
unul pe altul, iar pentru orice numar de pe linia i, exista o succesiune de
i numere care se divid unul pe altul. Cum in matrice pot fi inscrise doar
(m-1)(n-1) numere, iar noi avem (m-1)(n-1)+1 numere, rezulta din principiul
cutiei rezultatul din enuntul problemei.
Cristian Cadar
Bibliografie: Gazeta de Informatica Nr.9-10/1994,
____________ prof. Horia Georgescu, "Principiul cutiei al lui Dirichlet"
Sper ca articolul a fost de folos celor care nu stiau (sau nu stiau prea
multe) despre "Principiul lui Dirichlet". In caz ca aveti intrebari referi-
toare la acest articol puteti sa mi le adresati prin e-mail. De asemenea
daca v-a placut o problema in mod special puteti sa-mi trimiteti sursa pentru
evaluare. De asemenea recomand celor care pot face rost de Gazeta de Informa-
tica 9-10/1994, sa citeasca articolul respectiv, care este foarte interesant.
|
|