Sunteți pe pagina 1din 4

Principiul lui Dirichlet (cutiei)

prof. Doru Popescu Anastasiu, Slatina


Principiul lui Dirichlet (ntlnit i sub denumirea de principiul cutiei) are
urmtorul enun:
Se consider n+1 obiecte i n cutii. Dorim s punem n cutii toate obiectele, astfel sigur
va exista o cutie care s conin cel puin dou obiecte.
Probleme propuse
1. Se dau dou numere naturale a i b prime ntre ele. S se determine nb, astfel ca an-1
s se divid prin b.
Exemplu
Pentru a=2 i b=5, avem: n=4.
Indicaie
Din faptul c a i b sunt prime ntre ele, rezult c a, a2, , ab nu se divid cu b. Atunci
resturile ce se obin mprind numere a, a2, , ab la b sunt din mulimea: {1, 2, , b-1}.
Din Principiul lui Dirichlet rezult c exist k i l (k>l), naturale nenule, k,lb, astfel ca ak
i al s dea acelai rest la mprirea prin b. Rezult al(ak-l-1) se divide prin b i cum al i b
sunt prime ntre ele (pentru c a i b sunt prime ntre ele), obinem c ak-1- 1 se divide la b.
2. Se d o mulime A={a[1],a[2],,a[n]}, cu elemente numere reale (1n5000). Se
cere s se determine o submulime B a lui A, nevid cu proprietatea c partea
fracionar a sumei elementelor lui B este strict mai mic dect 1/n.
Date de intrare
n fiierul text MULTIME.IN se afl pe prima linie n, iar pe a doua linie elementele lui A
separate ntre ele prin cte un spaiu.
Date de ieire
n fiierul text MULTIME.OUT se va scrie pe prima linie elementele lui B separate prin
cte un spaiu.

1
www.ls-infomat.ro | www.manuale-de-informatica.ro

Exemplu
MULTIME.IN
5
2.3 22.5 5.23 7.71 55.6
MULTIME.OUT
22.5 55.6
Indicaie
Se construiete vectorul s cu componentele:
s[1]=partea fracionar din a[1];
s[2]=partea fracionar din a[1]+a[2];

s[n]=partea fracionar din a[1]+a[2]++a[n].


Intervalul [0,1) se partiioneaz folosind intervalele (0, 1/n], (1/n, 2/n],, ((n-1)/n, n/n].
Dac exist i cu s[i] n intervalul [0,1/n), atunci B={a[1],,a[i]}, altfel conform
principiului lui Dirichlet exist i i j cu s[i],s[j](0,1/n], atunci B={a[i+1],,a[j]}.
3. Se d o mulime A de n+1 elemente numere naturale nenule, mai mici sau egale cu
2n. S se determine dou submulimi X i Y, incluse n A, astfel nct produsul
elementelor dintr-o submulime s fie divizibil cu produsul elementelor din cealalt
submulime.
Date de intrare
n fiierul text MULTIME.IN se afl pe prima linie n, iar pe linia urmtoare cele n+1
elemente ale mulimii A (separate ntre ele prin cte un spaiu).
Date de ieire
n fiierul text MULTIME.OUT se va scrie pe prima linie elemetele multimii X, iar pe
linia urmtoare elementele mulimii Y.
Exemplu
MULTIME.IN
4
2 3 4 5 7
MULTIME.OUT
2
4
Indicaie
Fie a1, a2, , an+1 cele n+1 numere naturale. Dup o prealabil ordonare i
renumerotare avem: 1a1a2an+12n. Orice numr natural se poate scrie sub forma
2xy, unde x este un numr natural, iar y este un numr natural impar. Deci a1=2x(1)y(1),
a2=2x(2)y(2), , an+1=2x(n+1)y(n+1). Dar ntre 1 i 2n exist exact n numere impare i deci,
conform principiului cutiei, dou dintre numerele y(1), y(2), , y(n+1) sunt egale. Fie
acestea y(i) i y(j) cu i<j. Atunci numrul ai=2x(i)y(i) divide pe aj=2x(j)y(j).
2
www.ls-infomat.ro | www.manuale-de-informatica.ro

4. Se dau n+1 numere naturale diferite i mai mici dect 2n. Se cere s se determine trei
numere dintre cele date care au proprietatea c unul dintre ele este egal cu suma
celorlalte dou.
Date de intrare
n fiierul text NUMERE.IN se afl pe prima linie n, iar pe linia urmtoare cele n+1
numere.
Date de ieire
n fiierul text NUMERE.OUT se va scrie pe prima linie c ele trei numere separate ntre
ele prin cte un spaiu.
Exemplu
NUMERE.IN
4
2 3 4 5 7
NUMERE.OUT
2 3 5
Indicaie
Fie a1, a2, , an, an+1 cele n+1 numere naturale cu proprietatea c ai2n, pentru
1in+1. Vom ordona elementele din irul de numere astfel nct s obinem a1<a2<
<an<an+1. Atunci an+1-a1, an+1-a2, , an+1-an sunt numere naturale mai mici dect 2n.
Avem astfel n total (cu cele iniiale) n+1+n=2n+1 numere. Cum ele sunt mai mici dect
2n, conform principiului lui Dirichlet, exist dou numere care vor coincide:
ai=an+1-aj, 1in+1, 1jn
Deci an+1=ai+aj.
5. Fie a=(a1,a2,,an) un vector cu componente ntregi. S se determine o secven
(ai,,aj), cu proprietatea c ai++aj este un multiplu de n.
Indicaie
Pentru a determina o secven cu proprietatea din enun vom considera sumele:
S1=a1
S2=a1+a2
.......
Si=a1+a2++ai
............
Sn=a1+a2++an.
Putem avea dou cazuri:
1) exist k cu Sk multiplu de n, caz n care secvena cutat este a1,,ak;
2) nu exist sume care s fie divizibile cu n. n acest caz avem c toate sumele dau la
mprirea la n resturi ce fac parte din mulimea {1,2,,n-1}. Cum sunt n sume i n-1
resturi posibile, conform principiului lui Dirichlet obinem c exit dou sume Sp i
Sq,(p<q) care la mprirea la n dau acelai rest. Deci Sq-Sp este divizibil cu n i deci
putem lua i=p+1 i j=q.
3
www.ls-infomat.ro | www.manuale-de-informatica.ro

6. Se consider un numr natural care are n cifre, toate nenule. Se cere s se determine
un alt numr natural format doar din cifrele numrului iniial (nu este obligatorie
utilizarea tuturor cifrelor i n plus se poate folosi i cifra 0) i care se divide la n.
Exemplu
Pentru numarul 1111 o soluie poate fi 1000 sau 1100.
Indicaie
Fie A=a1a2an numrul dat. Considerm numerele: an, an-1an, , a1a2an.
Acestea au resturile mpririi la n n mulimea {0, 1, , n-1}. Dac exist un rest 0,
atunci numrul respectiv este cel cutat. Dac nu, avem de-a face cu n resturi din
mulimea {1, 2, , n-1}, adic n-1 resturi i conform principiului cutiei vor exista dou
resturi egale, deci dou numere B i C care au acelai rest la mprirea cu n. Scdem
aceste numere i rezultatul este ceea ce ne intereseaz.
7. Fie n un numr ntreg. Gsii un numr n baza 10 divizibil cu n i format numai din
cifre de 1 i 0.
Indicaie
Vom considera numerele 1, 11, 111, , 111 (ultimul avnd n cifre de 1). Putem avea
dou situaii:
1) Printre numerele anterioare exist unul care este multiplu de n. Rezult c acesta este
numrul cutat.
2) Toate numerele anterioare dau la mprirea cu n resturi nenule, adic 1, 2, , n-1.
ntruct avem n numere i n-1 resturi, conform principiului lui Dirichlet exist dou
numere care dau acelai rest. Obinem astfel c diferena acestor dou numere este
numrul cutat (care este evident format din cifrele 0 i 1).
8. Se dau 2n+1 numere reale mai mari ca 1 i mai mici ca 2n. S se determine trei dintre
ele care pot fi lungimile laturilor unui triunghi.
Exemplu
Pentru n=2 i numerele:
1.7 2.9 3.88 1.4 2.55
se va afia:
2.9 3.88 2.55
Indicaie
Intervalul (1, 2n) poate fi partiionat n n intervale:
(1, 2); [2, 22), [22, 23), . . ., [2n-1, 2n).
Conform Principiului lui Dirichlet, exist un interval din cele n de mai sus ce conine cel
puin trei din cele 2n+1 numere. Fie a1, a2, a3 aceste numere, situate n intervalul [2k,
2k+1), 0kn-1. Avem: 2ka12k+1, 2ka22k+1, 2ka32k+1. Deci a32k+1=2k+2ka1+a2.
Analog: a1a3+a2. a2a1+a3.
4
www.ls-infomat.ro | www.manuale-de-informatica.ro