generarea si ordonarea permutarilor. principiul...

94
Generarea ¸ si ordonarea permut˘ arilor. Principiul porumbeilor. Principiul incluziunii si excluziunii Generarea ¸ si ordonarea permut˘ arilor. Principiul porumbeilor. Pri

Upload: others

Post on 24-Feb-2020

45 views

Category:

Documents


1 download

TRANSCRIPT

Generarea si ordonarea permutarilor.Principiul porumbeilor.

Principiul incluziunii si excluziunii

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Recapitulare din cursul trecut

Presupunem ca A este o multime cu n elemente.

B Un aranjament de n luate cate r (sau r -permutare) a lui Aeste o secventa ordonata de elemente din A.

B O permutare a lui A este o secventa ordonata a tuturorelementelor din A.

B O combinare de n luate cate r a lui A este o submultime cu relemente din A.

Exemplu (A = {a1, a2, a3})B 2-permutarile lui A sunt (ordinea conteaza!):

〈a1, a2〉, 〈a2, a1〉, 〈a1, a3〉, 〈a3, a1〉, 〈a2, a3〉, 〈a3, a1〉

B 2-combinarile lui A sunt (ordinea nu conteaza!):

{a1, a2}, {a1, a3}, {a2, a3}

B Permutarile lui A sunt:

〈a1, a2, a3〉, 〈a1, a3, a2〉, 〈a2, a1, a3〉, 〈a2, a3, a1〉,〈a3, a1, a2〉, 〈a3, a2, a1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Recapitulare din cursul trecut

Presupunem ca A este o multime cu n elemente.

B Un aranjament de n luate cate r (sau r -permutare) a lui Aeste o secventa ordonata de elemente din A.

B O permutare a lui A este o secventa ordonata a tuturorelementelor din A.

B O combinare de n luate cate r a lui A este o submultime cu relemente din A.

Exemplu (A = {a1, a2, a3})B 2-permutarile lui A sunt (ordinea conteaza!):

〈a1, a2〉, 〈a2, a1〉, 〈a1, a3〉, 〈a3, a1〉, 〈a2, a3〉, 〈a3, a1〉

B 2-combinarile lui A sunt (ordinea nu conteaza!):

{a1, a2}, {a1, a3}, {a2, a3}

B Permutarile lui A sunt:

〈a1, a2, a3〉, 〈a1, a3, a2〉, 〈a2, a1, a3〉, 〈a2, a3, a1〉,〈a3, a1, a2〉, 〈a3, a2, a1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Recapitulare din cursul trecut

Presupunem ca A este o multime cu n elemente.

B Un aranjament de n luate cate r (sau r -permutare) a lui Aeste o secventa ordonata de elemente din A.

B O permutare a lui A este o secventa ordonata a tuturorelementelor din A.

B O combinare de n luate cate r a lui A este o submultime cu relemente din A.

Exemplu (A = {a1, a2, a3})B 2-permutarile lui A sunt (ordinea conteaza!):

〈a1, a2〉, 〈a2, a1〉, 〈a1, a3〉, 〈a3, a1〉, 〈a2, a3〉, 〈a3, a1〉

B 2-combinarile lui A sunt (ordinea nu conteaza!):

{a1, a2}, {a1, a3}, {a2, a3}

B Permutarile lui A sunt:

〈a1, a2, a3〉, 〈a1, a3, a2〉, 〈a2, a1, a3〉, 〈a2, a3, a1〉,〈a3, a1, a2〉, 〈a3, a2, a1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Recapitulare din cursul trecut

Presupunem ca A este o multime cu n elemente.

B Un aranjament de n luate cate r (sau r -permutare) a lui Aeste o secventa ordonata de elemente din A.

B O permutare a lui A este o secventa ordonata a tuturorelementelor din A.

B O combinare de n luate cate r a lui A este o submultime cu relemente din A.

Exemplu (A = {a1, a2, a3})B 2-permutarile lui A sunt (ordinea conteaza!):

〈a1, a2〉, 〈a2, a1〉, 〈a1, a3〉, 〈a3, a1〉, 〈a2, a3〉, 〈a3, a1〉

B 2-combinarile lui A sunt (ordinea nu conteaza!):

{a1, a2}, {a1, a3}, {a2, a3}

B Permutarile lui A sunt:

〈a1, a2, a3〉, 〈a1, a3, a2〉, 〈a2, a1, a3〉, 〈a2, a3, a1〉,〈a3, a1, a2〉, 〈a3, a2, a1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Recapitulare din cursul trecut

Presupunem ca A este o multime cu n elemente.

B Un aranjament de n luate cate r (sau r -permutare) a lui Aeste o secventa ordonata de elemente din A.

B O permutare a lui A este o secventa ordonata a tuturorelementelor din A.

B O combinare de n luate cate r a lui A este o submultime cu relemente din A.

Exemplu (A = {a1, a2, a3})B 2-permutarile lui A sunt (ordinea conteaza!):

〈a1, a2〉, 〈a2, a1〉, 〈a1, a3〉, 〈a3, a1〉, 〈a2, a3〉, 〈a3, a1〉

B 2-combinarile lui A sunt (ordinea nu conteaza!):

{a1, a2}, {a1, a3}, {a2, a3}

B Permutarile lui A sunt:

〈a1, a2, a3〉, 〈a1, a3, a2〉, 〈a2, a1, a3〉, 〈a2, a3, a1〉,〈a3, a1, a2〉, 〈a3, a2, a1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Recapitulare din cursul trecut

Presupunem ca A este o multime cu n elemente.

B Un aranjament de n luate cate r (sau r -permutare) a lui Aeste o secventa ordonata de elemente din A.

B O permutare a lui A este o secventa ordonata a tuturorelementelor din A.

B O combinare de n luate cate r a lui A este o submultime cu relemente din A.

Exemplu (A = {a1, a2, a3})B 2-permutarile lui A sunt (ordinea conteaza!):〈a1, a2〉, 〈a2, a1〉, 〈a1, a3〉, 〈a3, a1〉, 〈a2, a3〉, 〈a3, a1〉

B 2-combinarile lui A sunt (ordinea nu conteaza!):

{a1, a2}, {a1, a3}, {a2, a3}

B Permutarile lui A sunt:

〈a1, a2, a3〉, 〈a1, a3, a2〉, 〈a2, a1, a3〉, 〈a2, a3, a1〉,〈a3, a1, a2〉, 〈a3, a2, a1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Recapitulare din cursul trecut

Presupunem ca A este o multime cu n elemente.

B Un aranjament de n luate cate r (sau r -permutare) a lui Aeste o secventa ordonata de elemente din A.

B O permutare a lui A este o secventa ordonata a tuturorelementelor din A.

B O combinare de n luate cate r a lui A este o submultime cu relemente din A.

Exemplu (A = {a1, a2, a3})B 2-permutarile lui A sunt (ordinea conteaza!):〈a1, a2〉, 〈a2, a1〉, 〈a1, a3〉, 〈a3, a1〉, 〈a2, a3〉, 〈a3, a1〉

B 2-combinarile lui A sunt (ordinea nu conteaza!):{a1, a2}, {a1, a3}, {a2, a3}

B Permutarile lui A sunt:

〈a1, a2, a3〉, 〈a1, a3, a2〉, 〈a2, a1, a3〉, 〈a2, a3, a1〉,〈a3, a1, a2〉, 〈a3, a2, a1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Recapitulare din cursul trecut

Presupunem ca A este o multime cu n elemente.

B Un aranjament de n luate cate r (sau r -permutare) a lui Aeste o secventa ordonata de elemente din A.

B O permutare a lui A este o secventa ordonata a tuturorelementelor din A.

B O combinare de n luate cate r a lui A este o submultime cu relemente din A.

Exemplu (A = {a1, a2, a3})B 2-permutarile lui A sunt (ordinea conteaza!):〈a1, a2〉, 〈a2, a1〉, 〈a1, a3〉, 〈a3, a1〉, 〈a2, a3〉, 〈a3, a1〉

B 2-combinarile lui A sunt (ordinea nu conteaza!):{a1, a2}, {a1, a3}, {a2, a3}

B Permutarile lui A sunt:〈a1, a2, a3〉, 〈a1, a3, a2〉, 〈a2, a1, a3〉, 〈a2, a3, a1〉,〈a3, a1, a2〉, 〈a3, a2, a1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Operatii cu aranjamente si permutari

In prima parte a acestui curs vom ınvata:

Cum sa ordonam permutarile ıncat sa putem vorbi despreprima permutare, a doua, etc.

Cum sa generam permutarea care urmeaza dupa o permutaredata

Cum sa generam direct a k-a permutare

Cum sa determinam a cata este o permutare data

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Relatii de ordine pentru r -permutari

Presupunem ca A este o multime finita cu n elemente.1 Mai ıntai ordonam elementele multimii A

⇒ A = {a1, a2, . . . , an} undea1 = primul element. . .an = al n-lea element.

⇒ A devine o multime ordonata (un alfabet) ın carea1 < a2 < . . . < an.

2 r -permutarile sunt cuvinte 〈b1, ..., br 〉 de lungime r pe care leordonam ca si cuvintele din dictionar, de exemplu:

〈a1, a2〉 < 〈a1, a3〉 < 〈a2, a1〉 < . . .

Aceasta ordonare a r -permutarilor se numeste ordonarelexicografica:

〈b1, . . . , br 〉 < 〈c1, . . . , cr 〉 daca exista o pozitie k astfel ıncatbi = ci pentru 1 ≤ i < k , si bk < ck .

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Relatii de ordine pentru r -permutariObservatii preliminare

Fie A = {a1, . . . , an} o multime ordonata cu a1 < . . . < ansi N = {1, 2, . . . , n}.

1 r -permutarile lui A sunt cuvinte de forma 〈ai1 , . . . , air 〉 cui1, . . . , ir ∈ N.

2 〈ai1 , . . . , air 〉 este o r -permutare a lui A daca si numai daca(i1, . . . , ir ) este o r -permutare a lui N.

3 〈ai1 , . . . , air 〉 < 〈aj1 , . . . , ajr 〉 daca si numai daca〈i1, . . . , ir 〉 < 〈j1, . . . , jr 〉.

⇒ este suficient sa stim cum sa ordonam si sa enumeramr -permutari de numere din multimea N.

De acum ıncolo vom considera doar r-permutari ale multimiiordonate A = {1, . . . , n}.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Rangul unei r -permutari

Rangul unei r -permutari este pozitia la care apare r -permutarea ınordine lexicografica, pornind de la pozitia 0.

Exemplu (A = {1, 2, 3})

2-permutare rang permutare rang

〈1, 2〉 0 〈1, 2, 3〉 0〈1, 3〉 1 〈1, 3, 2〉 1〈2, 1〉 2 〈2, 1, 3〉 2〈2, 3〉 3 〈2, 3, 1〉 3〈3, 1〉 4 〈3, 1, 2〉 4〈3, 2〉 5 〈3, 2, 1〉 5

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicografica

Problema

Cum putem calcula permutarea lui N = {1, . . . , n} care urmeazadupa permutarea 〈p1, . . . , pn〉 ın ordine lexicografica?

Exemplu (N = {1, 2, 3, 4, 5})

permutare permutare urmatoare

〈5, 1, 3, 2, 4〉

〈5, 1, 3, 4, 2〉

〈5, 2, 4, 3, 1〉

〈5, 3, 1, 2, 4〉

〈5, 4, 3, 2, 1〉

nu exista

Permutarea care urmeaza dupa 〈p1, . . . , pn〉 se poate calcula astfel:

1 Determina i astfel ıncat pi > . . . > pn este cel mai lung sufixdescrescator al permutarii 〈p1, . . . , pn〉

2 Detemina j ≥ i astfel ıncat pj este cel mai mic numar mai maredecat pi−1.

3 Permuta pj cu pi−1, si apoi inverseaza sufixul pi , . . . , pn.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicografica

Problema

Cum putem calcula permutarea lui N = {1, . . . , n} care urmeazadupa permutarea 〈p1, . . . , pn〉 ın ordine lexicografica?

Exemplu (N = {1, 2, 3, 4, 5})

permutare permutare urmatoare

〈5, 1, 3, 2, 4〉 〈5, 1, 3, 4, 2〉〈5, 2, 4, 3, 1〉

〈5, 3, 1, 2, 4〉

〈5, 4, 3, 2, 1〉

nu exista

Permutarea care urmeaza dupa 〈p1, . . . , pn〉 se poate calcula astfel:

1 Determina i astfel ıncat pi > . . . > pn este cel mai lung sufixdescrescator al permutarii 〈p1, . . . , pn〉

2 Detemina j ≥ i astfel ıncat pj este cel mai mic numar mai maredecat pi−1.

3 Permuta pj cu pi−1, si apoi inverseaza sufixul pi , . . . , pn.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicografica

Problema

Cum putem calcula permutarea lui N = {1, . . . , n} care urmeazadupa permutarea 〈p1, . . . , pn〉 ın ordine lexicografica?

Exemplu (N = {1, 2, 3, 4, 5})

permutare permutare urmatoare

〈5, 1, 3, 2, 4〉 〈5, 1, 3, 4, 2〉〈5, 2, 4, 3, 1〉 〈5, 3, 1, 2, 4〉〈5, 4, 3, 2, 1〉

nu exista

Permutarea care urmeaza dupa 〈p1, . . . , pn〉 se poate calcula astfel:

1 Determina i astfel ıncat pi > . . . > pn este cel mai lung sufixdescrescator al permutarii 〈p1, . . . , pn〉

2 Detemina j ≥ i astfel ıncat pj este cel mai mic numar mai maredecat pi−1.

3 Permuta pj cu pi−1, si apoi inverseaza sufixul pi , . . . , pn.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicografica

Problema

Cum putem calcula permutarea lui N = {1, . . . , n} care urmeazadupa permutarea 〈p1, . . . , pn〉 ın ordine lexicografica?

Exemplu (N = {1, 2, 3, 4, 5})

permutare permutare urmatoare

〈5, 1, 3, 2, 4〉 〈5, 1, 3, 4, 2〉〈5, 2, 4, 3, 1〉 〈5, 3, 1, 2, 4〉〈5, 4, 3, 2, 1〉 nu exista

Permutarea care urmeaza dupa 〈p1, . . . , pn〉 se poate calcula astfel:

1 Determina i astfel ıncat pi > . . . > pn este cel mai lung sufixdescrescator al permutarii 〈p1, . . . , pn〉

2 Detemina j ≥ i astfel ıncat pj este cel mai mic numar mai maredecat pi−1.

3 Permuta pj cu pi−1, si apoi inverseaza sufixul pi , . . . , pn.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicografica

Problema

Cum putem calcula permutarea lui N = {1, . . . , n} care urmeazadupa permutarea 〈p1, . . . , pn〉 ın ordine lexicografica?

Exemplu (N = {1, 2, 3, 4, 5})

permutare permutare urmatoare

〈5, 1, 3, 2, 4〉 〈5, 1, 3, 4, 2〉〈5, 2, 4, 3, 1〉 〈5, 3, 1, 2, 4〉〈5, 4, 3, 2, 1〉 nu exista

Permutarea care urmeaza dupa 〈p1, . . . , pn〉 se poate calcula astfel:

1 Determina i astfel ıncat pi > . . . > pn este cel mai lung sufixdescrescator al permutarii 〈p1, . . . , pn〉

2 Detemina j ≥ i astfel ıncat pj este cel mai mic numar mai maredecat pi−1.

3 Permuta pj cu pi−1, si apoi inverseaza sufixul pi , . . . , pn.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicografica

Problema

Cum putem calcula permutarea lui N = {1, . . . , n} care urmeazadupa permutarea 〈p1, . . . , pn〉 ın ordine lexicografica?

Exemplu (N = {1, 2, 3, 4, 5})

permutare permutare urmatoare

〈5, 1, 3, 2, 4〉 〈5, 1, 3, 4, 2〉〈5, 2, 4, 3, 1〉 〈5, 3, 1, 2, 4〉〈5, 4, 3, 2, 1〉 nu exista

Permutarea care urmeaza dupa 〈p1, . . . , pn〉 se poate calcula astfel:

1 Determina i astfel ıncat pi > . . . > pn este cel mai lung sufixdescrescator al permutarii 〈p1, . . . , pn〉

2 Detemina j ≥ i astfel ıncat pj este cel mai mic numar mai maredecat pi−1.

3 Permuta pj cu pi−1, si apoi inverseaza sufixul pi , . . . , pn.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicografica

Problema

Cum putem calcula permutarea lui N = {1, . . . , n} care urmeazadupa permutarea 〈p1, . . . , pn〉 ın ordine lexicografica?

Exemplu (N = {1, 2, 3, 4, 5})

permutare permutare urmatoare

〈5, 1, 3, 2, 4〉 〈5, 1, 3, 4, 2〉〈5, 2, 4, 3, 1〉 〈5, 3, 1, 2, 4〉〈5, 4, 3, 2, 1〉 nu exista

Permutarea care urmeaza dupa 〈p1, . . . , pn〉 se poate calcula astfel:

1 Determina i astfel ıncat pi > . . . > pn este cel mai lung sufixdescrescator al permutarii 〈p1, . . . , pn〉

2 Detemina j ≥ i astfel ıncat pj este cel mai mic numar mai maredecat pi−1.

3 Permuta pj cu pi−1, si apoi inverseaza sufixul pi , . . . , pn.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicografica

Problema

Cum putem calcula permutarea lui N = {1, . . . , n} care urmeazadupa permutarea 〈p1, . . . , pn〉 ın ordine lexicografica?

Exemplu (N = {1, 2, 3, 4, 5})

permutare permutare urmatoare

〈5, 1, 3, 2, 4〉 〈5, 1, 3, 4, 2〉〈5, 2, 4, 3, 1〉 〈5, 3, 1, 2, 4〉〈5, 4, 3, 2, 1〉 nu exista

Permutarea care urmeaza dupa 〈p1, . . . , pn〉 se poate calcula astfel:

1 Determina i astfel ıncat pi > . . . > pn este cel mai lung sufixdescrescator al permutarii 〈p1, . . . , pn〉

2 Detemina j ≥ i astfel ıncat pj este cel mai mic numar mai maredecat pi−1.

3 Permuta pj cu pi−1, si apoi inverseaza sufixul pi , . . . , pn.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Operatii cu permutariEnumerarea permutarilor ın ordine lexicografica

Exemplu

〈5, 2, 4, 3, 1〉〈5, 3, 4, 2, 1〉

〈p1, p2, p3, p4, p5〉 = 〈5, 2, 4, 3, 1〉

i = 3 j = 4

permuta pi−1 = 2 cu pj = 3

inverseaza 〈pi , . . . , pn〉 = 〈4, 2, 1〉〈5, 3, 1, 2, 4〉 = permutarea urmatoare

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Operatii cu permutariEnumerarea permutarilor ın ordine lexicografica

Exemplu

〈5, 2, 4, 3, 1〉

〈5, 3, 4, 2, 1〉

〈p1, p2, p3, p4, p5〉 = 〈5, 2, 4, 3, 1〉

i = 3

j = 4

permuta pi−1 = 2 cu pj = 3

inverseaza 〈pi , . . . , pn〉 = 〈4, 2, 1〉〈5, 3, 1, 2, 4〉 = permutarea urmatoare

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Operatii cu permutariEnumerarea permutarilor ın ordine lexicografica

Exemplu

〈5, 2, 4, 3, 1〉

〈5, 3, 4, 2, 1〉

〈p1, p2, p3, p4, p5〉 = 〈5, 2, 4, 3, 1〉

i = 3 j = 4

permuta pi−1 = 2 cu pj = 3

inverseaza 〈pi , . . . , pn〉 = 〈4, 2, 1〉〈5, 3, 1, 2, 4〉 = permutarea urmatoare

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Operatii cu permutariEnumerarea permutarilor ın ordine lexicografica

Exemplu

〈5, 2, 4, 3, 1〉

〈5, 3, 4, 2, 1〉

〈p1, p2, p3, p4, p5〉 = 〈5, 2, 4, 3, 1〉

i = 3

j = 4

permuta pi−1 = 2 cu pj = 3

inverseaza 〈pi , . . . , pn〉 = 〈4, 2, 1〉

〈5, 3, 1, 2, 4〉 = permutarea urmatoare

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Operatii cu permutariEnumerarea permutarilor ın ordine lexicografica

Exemplu

〈5, 2, 4, 3, 1〉〈5, 3, 4, 2, 1〉

〈p1, p2, p3, p4, p5〉 = 〈5, 2, 4, 3, 1〉

i = 3 j = 4

permuta pi−1 = 2 cu pj = 3

inverseaza 〈pi , . . . , pn〉 = 〈4, 2, 1〉

〈5, 3, 1, 2, 4〉 = permutarea urmatoare

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Enumerarea permutarilor ın ordine lexicograficaPseudocod

PermutareUrmatoare(p: int[0 .. n − 1])i := n − 2;while (p[i ] > p[i + 1])

i--;j := n − 1;while (p[j ] < p[i ])

j--;// permuta valorile lui p[i ] si p[j ]tmp := p[i ];p[i ] := p[j ];p[j ] := tmp;// inverseaza (p[i+1], ..., p[n-1])

for (k := 0; k < b(n − i − 1)/2c; k++)// swap p[i + 1 + k] with p[n − 1− k]tmp := p[i + 1 + k];p[i + 1 + k] := p[n − 1− k];p[n − 1− k] := tmp;

return p;

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Operatii cu permutari

Probleme

1 Cum putem calcula direct si eficient rangul unei permutari〈p1, . . . , pn〉 a lui N = {1, . . . , n} ıntr-o enumerarelexicografica?

2 Cum putem calcula direct si eficient permutarea 〈p1, . . . , pn〉lui N = {1, . . . , n} care are rangul k?Presupunem ca 0 ≤ k < n!

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Calculul rangului unei permutari

Fie r rangul permutarii 〈p1, . . . , pn〉.B Daca p1 = 1 atunci 0 ≤ r < (n − 1)!B Daca p1 = 2 atunci (n − 1)! ≤ r < 2 · (n − 1)!

. . .B Daca p1 = k atunci (k − 1) · (n − 1)! ≤ r < k · (n − 1)!

. . .B Daca p1 = n atunci (n − 1) · (n − 1)! ≤ r < n · (n − 1)! = n!

⇒ ın general, (p1 − 1) · (n − 1)! ≤ r < p1 · (n − 1)!

⇒ rangul lui 〈p1, . . . , pn〉 = (p1 − 1) · (n − 1)! +rangul lui 〈p2, . . . , pn〉 ınenumerarea lexicograficaa permutarilor lui N − {p1}

⇒ r se poate calcula recursiv.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Calculul rangului unei permutari

Fie r rangul permutarii 〈p1, . . . , pn〉.B Daca p1 = 1 atunci 0 ≤ r < (n − 1)!B Daca p1 = 2 atunci (n − 1)! ≤ r < 2 · (n − 1)!

. . .B Daca p1 = k atunci (k − 1) · (n − 1)! ≤ r < k · (n − 1)!

. . .B Daca p1 = n atunci (n − 1) · (n − 1)! ≤ r < n · (n − 1)! = n!

⇒ ın general, (p1 − 1) · (n − 1)! ≤ r < p1 · (n − 1)!

⇒ rangul lui 〈p1, . . . , pn〉 = (p1 − 1) · (n − 1)! +rangul lui 〈p2, . . . , pn〉 ınenumerarea lexicograficaa permutarilor lui N − {p1}

⇒ r se poate calcula recursiv.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Calculul rangului unei permutari

Fie r rangul permutarii 〈p1, . . . , pn〉.B Daca p1 = 1 atunci 0 ≤ r < (n − 1)!B Daca p1 = 2 atunci (n − 1)! ≤ r < 2 · (n − 1)!

. . .B Daca p1 = k atunci (k − 1) · (n − 1)! ≤ r < k · (n − 1)!

. . .B Daca p1 = n atunci (n − 1) · (n − 1)! ≤ r < n · (n − 1)! = n!

⇒ ın general, (p1 − 1) · (n − 1)! ≤ r < p1 · (n − 1)!

⇒ rangul lui 〈p1, . . . , pn〉 = (p1 − 1) · (n − 1)! +rangul lui 〈p2, . . . , pn〉 ınenumerarea lexicograficaa permutarilor lui N − {p1}

⇒ r se poate calcula recursiv.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Calculul rangului unei permutari

Fie r rangul permutarii 〈p1, . . . , pn〉.B Daca p1 = 1 atunci 0 ≤ r < (n − 1)!B Daca p1 = 2 atunci (n − 1)! ≤ r < 2 · (n − 1)!

. . .B Daca p1 = k atunci (k − 1) · (n − 1)! ≤ r < k · (n − 1)!

. . .B Daca p1 = n atunci (n − 1) · (n − 1)! ≤ r < n · (n − 1)! = n!

⇒ ın general, (p1 − 1) · (n − 1)! ≤ r < p1 · (n − 1)!

⇒ rangul lui 〈p1, . . . , pn〉 = (p1 − 1) · (n − 1)! +rangul lui 〈p2, . . . , pn〉 ınenumerarea lexicograficaa permutarilor lui N − {p1}

⇒ r se poate calcula recursiv.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Calculul rangului unei permutari

Exemplu

Permutarea 〈p1, p2, p3, p4, p5〉 = 〈2, 3, 1, 5, 4〉 are rangul

r = (2− 1) · (5− 1)!+ rangul lui 〈3, 1, 5, 4〉 ın ordonarealexicografica a permutarilor lui {1, 3, 4, 5}.

rangul lui 〈3, 1, 5, 4〉 ın ordonarea lexicografica a permutarilorlui {1, 3, 4, 5} este acelasi curangul lui 〈2, 1, 4, 3〉 ın ordonarea lexicografica a permutarilorlui {1, 2, 3, 4}

(am micsorat cu 1 toate elementele mai mari decat p1 = 2)

Procedand recursiv, vom obtine ca rangul lui 〈2, 1, 4, 3〉 este 7.

⇒ rangul lui 〈2, 3, 1, 5, 4〉 este 24 + 7 = 31.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Calculul rangului unei permutariPseudocod

Rang(p : int[0 .. n − 1])if n == 1

return 0

elseq : int[0 .. n − 2];// ajusteaza p[1..n-1] sa fie permutare a lui {1, ..., n − 1}// memorata in q[0 .. n − 2]for(i := 1; i ≤ n − 1; i++)

if(p[i ] < p[0])q[i − 1] = p[i ];

elseq[i − 1] = p[i ]− 1;

return Rang[q] + (p[0]− 1) · (n − 1)!

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Calculul unei permutari cu rang dat

Se doreste un algoritm care construieste direct permutarea(p1, . . . , pn) cu rangul r , cand 0 ≤ r < n!.

Am observat deja ca daca permutarea (p1, . . . , pn) are rangulr , atunci (p1 − 1) · (n − 1)! ≤ r < p1 · (n − 1)!

⇒ p1 =

⌊r

(n − 1)!

⌋+ 1

⇒ Daca (q1, . . . , qn−1) este permutarea cu rangulr − (p1 − 1) · (n − 1)! atunci

pi+1 =

{qi daca qi < p1,qi + 1 daca qi ≥ p1.

pentru fiecare subsecventa.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Algoritmi de generare rapida a tuturor permutarilor(Optional)

Generarea tuturor permutarilor se poate face si ın alta ordinedecat cea lexicografica.

Uneori se doreste generarea foarte rapida a tuturorpermutarilor:

B Acest lucru este posibil daca fiecare permutare se obtine foarterapid din cea precedenta.

B In 1963, Heap a descoperit un algoritm care genereazapermutarea urmatoare a unei permutari prin interschimbareavalorilor a 2 elemente.

Algoritmul lui Heap este cel mai rapid algoritm degenerare a tuturor permutarilor.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Generarea rapida a permutarilor cu algoritmul lui Heap(Optional)

for(i := 1; i ≤ n; i++)p[i ] := i

for(c := 1; c ≤ n; c++)1. genereaza toate permutarile lui 〈p[1], . . . , p[n − 1]〉 fara a-l modifica pe p[n];(la sfarsitul pasului 1, p contine ultima permutare generata)2. permuta p[n] cu elementul p[f (n, c)]

unde f (n, c) =

{1 daca n este impar,c daca n este par.

B Algoritmul lui Heap genereaza toate permutarile lui {1, . . . , n} ıntr-o ordinediferita de cea lexicografica.

B Fiecare permutare difera de cea precedenta printr-o transpozitie (adica, ointerschimbare a valorilor a 2 elemente).

Exemplu

Algoritmul lui Heap enumera permutarile lui {1, 2, 3} ın ordinea urmatoare:

〈1, 2, 3〉, 〈2, 1, 3〉, 〈3, 1, 2〉, 〈1, 3, 2〉, 〈2, 3, 1〉, 〈3, 2, 1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Generarea rapida a permutarilor cu algoritmul lui Heap(Optional)

for(i := 1; i ≤ n; i++)p[i ] := i

for(c := 1; c ≤ n; c++)1. genereaza toate permutarile lui 〈p[1], . . . , p[n − 1]〉 fara a-l modifica pe p[n];(la sfarsitul pasului 1, p contine ultima permutare generata)2. permuta p[n] cu elementul p[f (n, c)]

unde f (n, c) =

{1 daca n este impar,c daca n este par.

B Algoritmul lui Heap genereaza toate permutarile lui {1, . . . , n} ıntr-o ordinediferita de cea lexicografica.

B Fiecare permutare difera de cea precedenta printr-o transpozitie (adica, ointerschimbare a valorilor a 2 elemente).

Exemplu

Algoritmul lui Heap enumera permutarile lui {1, 2, 3} ın ordinea urmatoare:

〈1, 2, 3〉, 〈2, 1, 3〉, 〈3, 1, 2〉, 〈1, 3, 2〉, 〈2, 3, 1〉, 〈3, 2, 1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Generarea rapida a permutarilor cu algoritmul lui Heap(Optional)

for(i := 1; i ≤ n; i++)p[i ] := i

for(c := 1; c ≤ n; c++)1. genereaza toate permutarile lui 〈p[1], . . . , p[n − 1]〉 fara a-l modifica pe p[n];(la sfarsitul pasului 1, p contine ultima permutare generata)2. permuta p[n] cu elementul p[f (n, c)]

unde f (n, c) =

{1 daca n este impar,c daca n este par.

B Algoritmul lui Heap genereaza toate permutarile lui {1, . . . , n} ıntr-o ordinediferita de cea lexicografica.

B Fiecare permutare difera de cea precedenta printr-o transpozitie (adica, ointerschimbare a valorilor a 2 elemente).

Exemplu

Algoritmul lui Heap enumera permutarile lui {1, 2, 3} ın ordinea urmatoare:

〈1, 2, 3〉, 〈2, 1, 3〉, 〈3, 1, 2〉, 〈1, 3, 2〉, 〈2, 3, 1〉, 〈3, 2, 1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Generarea rapida a permutarilor cu algoritmul lui Heap(Optional)

for(i := 1; i ≤ n; i++)p[i ] := i

for(c := 1; c ≤ n; c++)1. genereaza toate permutarile lui 〈p[1], . . . , p[n − 1]〉 fara a-l modifica pe p[n];(la sfarsitul pasului 1, p contine ultima permutare generata)2. permuta p[n] cu elementul p[f (n, c)]

unde f (n, c) =

{1 daca n este impar,c daca n este par.

B Algoritmul lui Heap genereaza toate permutarile lui {1, . . . , n} ıntr-o ordinediferita de cea lexicografica.

B Fiecare permutare difera de cea precedenta printr-o transpozitie (adica, ointerschimbare a valorilor a 2 elemente).

Exemplu

Algoritmul lui Heap enumera permutarile lui {1, 2, 3} ın ordinea urmatoare:

〈1, 2, 3〉, 〈2, 1, 3〉, 〈3, 1, 2〉, 〈1, 3, 2〉, 〈2, 3, 1〉, 〈3, 2, 1〉

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Exercitii

1 Sa se implementeze un program care citeste o secventa de nnumere si apoi afiseaza:

”este permutare” daca secventa respectiva este o permutare alui {1, . . . , n}”nu este permutare” ın caz contrar.

2 Sa se implementeze un program care citeste numerele n sir ∈ {0, 1, . . . , n!− 1} si afiseaza permutarea lui {1, . . . , n}care are rangul r .

3 Sa se implementeze un program care citeste o permutare a lui{1, . . . , n} si afiseaza rangul permutarii respective.

4 Scrieti un program care citeste o permutare 〈a1, . . . , an〉 sicalculeaza inversa ei, adica permutarea 〈b1, . . . , bn〉 astfelıncat bai = abi = i pentru orice 1 ≤ i ≤ n.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Exercitii

1 Scrieti un program care citeste o permutare si calculeazapermutarea urmatoare ın ordine lexicografica.

2 Scrieti un program care citeste o permutare si calculeazapermutarea precedenta ın ordine lexicografica.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilor

Exemplu

Presupunem ca un card de 13 porumbei ocupa o cusca cu 12adaposturi.

Numarul de adaposturi este mai mic decat numarul de porumbei ⇒cel putin un adapost va fi ocupat de cel putin 2 porumbei.

Principiul porumbeilor (sau Principiul lui Dirichlet)

Fie n un numar ıntreg pozitiv. Daca mai mult de n obiecte suntdistribuite ın n containere, atunci un container trebuie sa contina celputin 2 obiecte.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilor

Exemplu

Presupunem ca un card de 13 porumbei ocupa o cusca cu 12adaposturi.

Numarul de adaposturi este mai mic decat numarul de porumbei ⇒cel putin un adapost va fi ocupat de cel putin 2 porumbei.

Principiul porumbeilor (sau Principiul lui Dirichlet)

Fie n un numar ıntreg pozitiv. Daca mai mult de n obiecte suntdistribuite ın n containere, atunci un container trebuie sa contina celputin 2 obiecte.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorApplicatii ın rationamentul combinatorial

Stabilirea existentei unei anumite configuratii sau combinari ındiverse situatii.

1 Presupunem ca sunt 367 studenti ınscrisi la cursul de istorie.Atunci cel putin 2 studenti au aceeasi zi de nastere.

Demonstratie. Numarul de studenti este mai mare decatnumarul de zile calendaristice. Conform pricipiului porumbeilor,cel putin 2 studenti sunt nascuti ın aceeasi zi calendaristica.

2 n pugilisti concureaza ıntr-un turneu care prevede un meciıntre fiecare pereche de pugilisti. Fiecare pugilist a pierdut celputin un meci. Atunci cel putin 2 pugilisti au obtinut acelasinumar de victorii.

Demonstratie. Sunt n pugilisti, si fiecare pugilist are ıntre 0si n − 2 victorii. (Observati ca nici un pugilist nu are n − 1victorii deoarece stim ca fiecare a pierdut cel putin un meci.)Conform principiului porumbeilor, cel putin 2 pugilisti auacelasi numar de victorii.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilor

Generalizare: Fie m si n ıntregi pozitivi. Daca mai mult decat m · nobiecte sunt distribuite ın n containere, atunci cel putin un container

trebue sa contina cel putin m + 1 obiecte.

Demonstratie: prin contradictie. Daca punem cel mult m

obiecte ın fiecare container, atunci numarul total de obiecte ar fi cel

mult m · n.

Teorema

Daca a1, a2, . . . , an ∈ R si µ =a1 + a2 + . . .+ an

n, atunci exista ıntregii i

si j cu 1 ≤ i , j ≤ n astfel ıncat ai ≤ µ si aj ≥ µ.

Demonstratie: prin contradictie.Daca fiecare element este strict mai mare decat µ atunci

µ = (a1 + a2+ . . . +an)/n >n · µn

= µ, contradictie ⇒ ∃ai ≤ µ.

Daca fiecare element este strict mai mic decat µ atunci

µ = (a1 + a2+ . . . +an)/n <n · µn

= µ, contradictie ⇒ ∃aj ≥ µ.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 1: Subsecvente monotone

Definitie (Secventa monotona)

O secventa a1, a2, . . . , an este

crescatoare daca a1 ≤ a2 ≤ . . . ≤ an

strict crescatoare daca a1 < a2 < . . . < an

descrescatoare daca a1 ≥ a2 ≥ . . . ≥ an

strict descrescatoare daca a1 > a2 > . . . > an

Fie secventa 3, 5, 8, 10, 6, 1, 9, 2, 7, 4.

Care sunt subsecventele crescatoare de lungime maxima?

(3, 5, 8, 10), (3, 5, 8, 9), (3, 5, 6, 7), (3, 5, 6, 9)

Care sunt subsecventele descrescatoare de lungime maxima?

(10, 9, 7, 4)

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 1: Subsecvente monotone (continuare)

Teorema

Presupunem ca m, n ∈ N− {0}. O secventa cu mai mult de m · n numere

reale trebuie sa contina fie o subsecventa crescatoare de lungime cel putin

m + 1, sau o subsecventa strict descrescatoare de lungime cel putin n + 1.

Demonstratie.r1, r2, . . . , rm·n+1

Pentru fiecare 1 ≤ i ≤ m · n + 1, fie

ai :=lungimea celei mai lungi subsecvente crescatoare ce ıncepe cu ridi :=lungimea celei mai lungi subsecvente strict descrescatoare ceıncepe cu ri

De exemplu, daca secventa este 3, 5, 8, 10, 6, 1, 9, 2, 7, 4 atunci

a2 = 3 (pentru subsecventa 5, 8, 10 sau 5, 8, 9)d2 = 2 (pentru subsecventa 5, 1 sau 5, 2 sau 5, 4)

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 1: Subsecvente monotone (Demo. continuata)

Presupunem ca teorema este falsa ⇒ 1 ≤ ai ≤ m si1 ≤ di ≤ n

⇒ perechea (ai , di ) are m · n valori posibile.

Exista m · n + 1 perechi ⇒ ∃i < j cu (ai , di ) = (aj , dj).Daca i < j si (ai , di ) = (aj , dj) atunci

1 Lungimea maxima a subsecventelor crescatoare ce pornesc dinri si din rj este ai .

2 Lungimea maxima a subsecventelor strict descrescatoare cepornesc din ri si din rj este di .

Acest lucru este imposibil fiindca

1 daca ri ≤ rj atunci ri ≤lungime ai︷ ︸︸ ︷rj ≤ . . .︸ ︷︷ ︸

lungime ai+1

2 Daca ri > rj atunci ri >

lungime di︷ ︸︸ ︷rj > . . .︸ ︷︷ ︸

lungime di+1

.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale

Pentru fiecare numar real x ∈ R definim:

bxc := cel mai mare ıntreg m astfel ıncat m ≤ x .

dxe := cel mai mic ıntreg m astfel ıncat x ≤ m.

Partea fractionara a lui x :{x} := x − bxcUn numar irational este un numar care nu este rezultatulımpartirii a doi ıntregi.

Exemple: π = 3.14159265 . . ., e = 2.7182818 . . ., etc.

Daca α este un numar irational si Q ∈ N− {0}, cat de bineputem aproxima α cu un numar rational p

q unde 1 ≤ q ≤ Q?

Cat de mic poate deveni

∣∣∣∣∣α− p

q

∣∣∣∣∣ cand 1 ≤ q ≤ Q?

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale

Pentru fiecare numar real x ∈ R definim:

bxc := cel mai mare ıntreg m astfel ıncat m ≤ x .

dxe := cel mai mic ıntreg m astfel ıncat x ≤ m.

Partea fractionara a lui x :{x} := x − bxcUn numar irational este un numar care nu este rezultatulımpartirii a doi ıntregi.

Exemple: π = 3.14159265 . . ., e = 2.7182818 . . ., etc.

Daca α este un numar irational si Q ∈ N− {0}, cat de bineputem aproxima α cu un numar rational p

q unde 1 ≤ q ≤ Q?

Cat de mic poate deveni

∣∣∣∣∣α− p

q

∣∣∣∣∣ cand 1 ≤ q ≤ Q?

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale

Pentru fiecare numar real x ∈ R definim:

bxc := cel mai mare ıntreg m astfel ıncat m ≤ x .

dxe := cel mai mic ıntreg m astfel ıncat x ≤ m.

Partea fractionara a lui x :{x} := x − bxcUn numar irational este un numar care nu este rezultatulımpartirii a doi ıntregi.

Exemple: π = 3.14159265 . . ., e = 2.7182818 . . ., etc.

Daca α este un numar irational si Q ∈ N− {0}, cat de bineputem aproxima α cu un numar rational p

q unde 1 ≤ q ≤ Q?

Cat de mic poate deveni

∣∣∣∣∣α− p

q

∣∣∣∣∣ cand 1 ≤ q ≤ Q?

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale

Pentru fiecare numar real x ∈ R definim:

bxc := cel mai mare ıntreg m astfel ıncat m ≤ x .

dxe := cel mai mic ıntreg m astfel ıncat x ≤ m.

Partea fractionara a lui x :{x} := x − bxc

Un numar irational este un numar care nu este rezultatulımpartirii a doi ıntregi.

Exemple: π = 3.14159265 . . ., e = 2.7182818 . . ., etc.

Daca α este un numar irational si Q ∈ N− {0}, cat de bineputem aproxima α cu un numar rational p

q unde 1 ≤ q ≤ Q?

Cat de mic poate deveni

∣∣∣∣∣α− p

q

∣∣∣∣∣ cand 1 ≤ q ≤ Q?

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale

Pentru fiecare numar real x ∈ R definim:

bxc := cel mai mare ıntreg m astfel ıncat m ≤ x .

dxe := cel mai mic ıntreg m astfel ıncat x ≤ m.

Partea fractionara a lui x :{x} := x − bxcUn numar irational este un numar care nu este rezultatulımpartirii a doi ıntregi.

Exemple: π = 3.14159265 . . ., e = 2.7182818 . . ., etc.

Daca α este un numar irational si Q ∈ N− {0}, cat de bineputem aproxima α cu un numar rational p

q unde 1 ≤ q ≤ Q?

Cat de mic poate deveni

∣∣∣∣∣α− p

q

∣∣∣∣∣ cand 1 ≤ q ≤ Q?

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale

Pentru fiecare numar real x ∈ R definim:

bxc := cel mai mare ıntreg m astfel ıncat m ≤ x .

dxe := cel mai mic ıntreg m astfel ıncat x ≤ m.

Partea fractionara a lui x :{x} := x − bxcUn numar irational este un numar care nu este rezultatulımpartirii a doi ıntregi.

Exemple: π = 3.14159265 . . ., e = 2.7182818 . . ., etc.

Daca α este un numar irational si Q ∈ N− {0}, cat de bineputem aproxima α cu un numar rational p

q unde 1 ≤ q ≤ Q?

Cat de mic poate deveni

∣∣∣∣∣α− p

q

∣∣∣∣∣ cand 1 ≤ q ≤ Q?

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale

Pentru fiecare numar real x ∈ R definim:

bxc := cel mai mare ıntreg m astfel ıncat m ≤ x .

dxe := cel mai mic ıntreg m astfel ıncat x ≤ m.

Partea fractionara a lui x :{x} := x − bxcUn numar irational este un numar care nu este rezultatulımpartirii a doi ıntregi.

Exemple: π = 3.14159265 . . ., e = 2.7182818 . . ., etc.

Daca α este un numar irational si Q ∈ N− {0}, cat de bineputem aproxima α cu un numar rational p

q unde 1 ≤ q ≤ Q?

Cat de mic poate deveni

∣∣∣∣∣α− p

q

∣∣∣∣∣ cand 1 ≤ q ≤ Q?

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale

Pentru fiecare numar real x ∈ R definim:

bxc := cel mai mare ıntreg m astfel ıncat m ≤ x .

dxe := cel mai mic ıntreg m astfel ıncat x ≤ m.

Partea fractionara a lui x :{x} := x − bxcUn numar irational este un numar care nu este rezultatulımpartirii a doi ıntregi.

Exemple: π = 3.14159265 . . ., e = 2.7182818 . . ., etc.

Daca α este un numar irational si Q ∈ N− {0}, cat de bineputem aproxima α cu un numar rational p

q unde 1 ≤ q ≤ Q?

Cat de mic poate deveni

∣∣∣∣∣α− p

q

∣∣∣∣∣ cand 1 ≤ q ≤ Q?

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea cu numere rationale (2)

Teorema (Teorema de aproximare a lui Dirichlet)

Daca α este un numar irational si Q un ıntreg pozitiv, atunciexista un numar rational p/q cu 1 ≤ q ≤ Q astfel ıncat∣∣∣∣α− p

q

∣∣∣∣ ≤ 1

q · (Q + 1).

Demonstratie. Impartim intervalul [0, 1] ın Q + 1 subintervale delungimi egale:[

0,1

Q + 1

),

[1

Q + 1,

2

Q + 1

), . . . ,

[Q

Q + 1, 1

]si urmatoarele Q + 2 numere reale:

r1 = 0, r2 = {α}, {2α}, . . . , rQ+1 = {Qα}, rQ+2 = 1

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea numerelor rationale (2)

Avem Q + 2 numere ın Q + 1 intervale

⇒ exista i < j cu ri , rj ın acelasi interval

⇒ |ri − rj | ≤ 1Q+1 . Se observa ca (i , j) 6= (1,Q + 2)

Deasemenea

r1 = 0 ·α− 0ri = (i − 1) ·α− b(i − 1)αc daca 2 ≤ i ≤ Q + 1

rQ+2 = 0 ·α− (−1)

⇒ fiecare ri este ui · α− vi cu ui , vi ∈ Z, sidaca i < j atunci ui = uj numai daca (i , j) = (1,Q + 2).

⇒ |ri − rj | = |(ui − uj)α− (vi − vj)| = |ui − uj |︸ ︷︷ ︸q∈[1,Q]

·|α− vi − vjui − uj︸ ︷︷ ︸

pq

| ≤ 1Q+1 .

Deci

∣∣∣∣α− p

q

∣∣∣∣ ≤ 1

q · (Q + 1).

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea numerelor rationale (2)

Avem Q + 2 numere ın Q + 1 intervale

⇒ exista i < j cu ri , rj ın acelasi interval

⇒ |ri − rj | ≤ 1Q+1 . Se observa ca (i , j) 6= (1,Q + 2)

Deasemenea

r1 = 0 ·α− 0ri = (i − 1) ·α− b(i − 1)αc daca 2 ≤ i ≤ Q + 1

rQ+2 = 0 ·α− (−1)

⇒ fiecare ri este ui · α− vi cu ui , vi ∈ Z, sidaca i < j atunci ui = uj numai daca (i , j) = (1,Q + 2).

⇒ |ri − rj | = |(ui − uj)α− (vi − vj)| = |ui − uj |︸ ︷︷ ︸q∈[1,Q]

·|α− vi − vjui − uj︸ ︷︷ ︸

pq

| ≤ 1Q+1 .

Deci

∣∣∣∣α− p

q

∣∣∣∣ ≤ 1

q · (Q + 1).

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea numerelor rationale (2)

Avem Q + 2 numere ın Q + 1 intervale

⇒ exista i < j cu ri , rj ın acelasi interval

⇒ |ri − rj | ≤ 1Q+1 . Se observa ca (i , j) 6= (1,Q + 2)

Deasemenea

r1 = 0 ·α− 0ri = (i − 1) ·α− b(i − 1)αc daca 2 ≤ i ≤ Q + 1

rQ+2 = 0 ·α− (−1)

⇒ fiecare ri este ui · α− vi cu ui , vi ∈ Z, sidaca i < j atunci ui = uj numai daca (i , j) = (1,Q + 2).

⇒ |ri − rj | = |(ui − uj)α− (vi − vj)| = |ui − uj |︸ ︷︷ ︸q∈[1,Q]

·|α− vi − vjui − uj︸ ︷︷ ︸

pq

| ≤ 1Q+1 .

Deci

∣∣∣∣α− p

q

∣∣∣∣ ≤ 1

q · (Q + 1).

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea numerelor rationale (2)

Avem Q + 2 numere ın Q + 1 intervale

⇒ exista i < j cu ri , rj ın acelasi interval

⇒ |ri − rj | ≤ 1Q+1 . Se observa ca (i , j) 6= (1,Q + 2)

Deasemenea

r1 = 0 ·α− 0ri = (i − 1) ·α− b(i − 1)αc daca 2 ≤ i ≤ Q + 1

rQ+2 = 0 ·α− (−1)

⇒ fiecare ri este ui · α− vi cu ui , vi ∈ Z, sidaca i < j atunci ui = uj numai daca (i , j) = (1,Q + 2).

⇒ |ri − rj | = |(ui − uj)α− (vi − vj)| = |ui − uj |︸ ︷︷ ︸q∈[1,Q]

·|α− vi − vjui − uj︸ ︷︷ ︸

pq

| ≤ 1Q+1 .

Deci

∣∣∣∣α− p

q

∣∣∣∣ ≤ 1

q · (Q + 1).

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea numerelor rationale (2)

Avem Q + 2 numere ın Q + 1 intervale

⇒ exista i < j cu ri , rj ın acelasi interval

⇒ |ri − rj | ≤ 1Q+1 . Se observa ca (i , j) 6= (1,Q + 2)

Deasemenea

r1 = 0 ·α− 0ri = (i − 1) ·α− b(i − 1)αc daca 2 ≤ i ≤ Q + 1

rQ+2 = 0 ·α− (−1)

⇒ fiecare ri este ui · α− vi cu ui , vi ∈ Z, sidaca i < j atunci ui = uj numai daca (i , j) = (1,Q + 2).

⇒ |ri − rj | = |(ui − uj)α− (vi − vj)| = |ui − uj |︸ ︷︷ ︸q∈[1,Q]

·|α− vi − vjui − uj︸ ︷︷ ︸

pq

| ≤ 1Q+1 .

Deci

∣∣∣∣α− p

q

∣∣∣∣ ≤ 1

q · (Q + 1).

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea numerelor rationale (2)

Avem Q + 2 numere ın Q + 1 intervale

⇒ exista i < j cu ri , rj ın acelasi interval

⇒ |ri − rj | ≤ 1Q+1 . Se observa ca (i , j) 6= (1,Q + 2)

Deasemenea

r1 = 0 ·α− 0ri = (i − 1) ·α− b(i − 1)αc daca 2 ≤ i ≤ Q + 1

rQ+2 = 0 ·α− (−1)

⇒ fiecare ri este ui · α− vi cu ui , vi ∈ Z, sidaca i < j atunci ui = uj numai daca (i , j) = (1,Q + 2).

⇒ |ri − rj | = |(ui − uj)α− (vi − vj)| = |ui − uj |︸ ︷︷ ︸q∈[1,Q]

·|α− vi − vjui − uj︸ ︷︷ ︸

pq

| ≤ 1Q+1 .

Deci

∣∣∣∣α− p

q

∣∣∣∣ ≤ 1

q · (Q + 1).

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul porumbeilorAplicatia 2: Aproximarea numerelor rationale (2)

Avem Q + 2 numere ın Q + 1 intervale

⇒ exista i < j cu ri , rj ın acelasi interval

⇒ |ri − rj | ≤ 1Q+1 . Se observa ca (i , j) 6= (1,Q + 2)

Deasemenea

r1 = 0 ·α− 0ri = (i − 1) ·α− b(i − 1)αc daca 2 ≤ i ≤ Q + 1

rQ+2 = 0 ·α− (−1)

⇒ fiecare ri este ui · α− vi cu ui , vi ∈ Z, sidaca i < j atunci ui = uj numai daca (i , j) = (1,Q + 2).

⇒ |ri − rj | = |(ui − uj)α− (vi − vj)| = |ui − uj |︸ ︷︷ ︸q∈[1,Q]

·|α− vi − vjui − uj︸ ︷︷ ︸

pq

| ≤ 1Q+1 .

Deci

∣∣∣∣α− p

q

∣∣∣∣ ≤ 1

q · (Q + 1).

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiExemple ilustrative

Presupunem ca un sertar contine 50 de margele: 25 sunt de sticla, 30sunt rosii, 20 sunt sferice, 18 sunt de sticla rosie, 12 sunt sferice de sticla,15 sunt sferice rosii, si 8 sunt sferice de sticla rosie. Cate margele existacare nu sunt nici rosii, nici de sticla si nici sferice?

Raspuns: Desenam o diagrama Venn cu 3 multimi: multimea G amargelelor de sticla, R a margelelor rosii, si S a margelelor sferice.

Observatie.

|G ∪R ∪ S | = |G |+ |R|+ |S | − |G ∩R| − |G ∩ S | − |R ∩ S |+ |G ∩R ∩ S |.Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si Excluziunii

Ipoteze:

U: o multime universala cu N elemente

a1, . . . , ar : proprietati ale elementelor multimii U

N(ai1ai2 . . . aim): numarul obiectelor din U care au simultanproprietatile ai1 , ai2 , . . . , aim .

N0: numarul obiectelor din U care nu au nici una din acesteproprietati.

Teorema (Principiul Incluziunii si Excluziunii)

N0 = N −∑i

N(ai ) +∑i<j

N(aiaj)−∑

i<j<k

N(aiajak) + . . .

+ (−1)m∑

i1<···<im

N(ai1 . . . aim) + . . .+ (−1)rN(a1a2 . . . ar ).

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 1: Numere divizibile cu 2 numere relativ prime

Exemplu

Cate numere cuprinse ıntre 50 si 213 sunt divizibile cu 5 si 12?

Fie U = {n | 50 ≤ n ≤ 213}. Numarul de elemente al lui U esteN = 213− 50 + 1 = 164.

a1: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 5.

a2: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 12.

Primul numar din U divizibil cu 5 este 50 = 5 · 10. Ultimul numar din U divizibilcu 5 este 210 = 5 · 42 ⇒ N(a1) = 42− 10 + 1 = 33.

Primul numar din U divizibil cu 12 este 60 = 12 · 5. Ultimul numar din Udivizibil cu 12 este 204 = 12 · 17 ⇒ N(a2) = 17− 5 + 1 = 13.

Un numar are simultan proprietatile a1 si a2 daca este divizibil cu 5 · 12 = 60.Primul numar din U divizibil cu 60 este 60 = 60 · 1. Ultimul numar din Udivizibil cu 60 este 180 = 60 · 3 ⇒ N(a1a2) = 3− 1 + 1 = 3.

⇒ Numarul cautat este N(a1) + N(a2)− N(a1a2) = 33 + 13− 3 = 43.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 1: Numere divizibile cu 2 numere relativ prime

Exemplu

Cate numere cuprinse ıntre 50 si 213 sunt divizibile cu 5 si 12?

Fie U = {n | 50 ≤ n ≤ 213}. Numarul de elemente al lui U esteN = 213− 50 + 1 = 164.

a1: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 5.

a2: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 12.

Primul numar din U divizibil cu 5 este 50 = 5 · 10. Ultimul numar din U divizibilcu 5 este 210 = 5 · 42 ⇒ N(a1) = 42− 10 + 1 = 33.

Primul numar din U divizibil cu 12 este 60 = 12 · 5. Ultimul numar din Udivizibil cu 12 este 204 = 12 · 17 ⇒ N(a2) = 17− 5 + 1 = 13.

Un numar are simultan proprietatile a1 si a2 daca este divizibil cu 5 · 12 = 60.Primul numar din U divizibil cu 60 este 60 = 60 · 1. Ultimul numar din Udivizibil cu 60 este 180 = 60 · 3 ⇒ N(a1a2) = 3− 1 + 1 = 3.

⇒ Numarul cautat este N(a1) + N(a2)− N(a1a2) = 33 + 13− 3 = 43.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 1: Numere divizibile cu 2 numere relativ prime

Exemplu

Cate numere cuprinse ıntre 50 si 213 sunt divizibile cu 5 si 12?

Fie U = {n | 50 ≤ n ≤ 213}. Numarul de elemente al lui U esteN = 213− 50 + 1 = 164.

a1: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 5.

a2: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 12.

Primul numar din U divizibil cu 5 este 50 = 5 · 10. Ultimul numar din U divizibilcu 5 este 210 = 5 · 42 ⇒ N(a1) = 42− 10 + 1 = 33.

Primul numar din U divizibil cu 12 este 60 = 12 · 5. Ultimul numar din Udivizibil cu 12 este 204 = 12 · 17 ⇒ N(a2) = 17− 5 + 1 = 13.

Un numar are simultan proprietatile a1 si a2 daca este divizibil cu 5 · 12 = 60.Primul numar din U divizibil cu 60 este 60 = 60 · 1. Ultimul numar din Udivizibil cu 60 este 180 = 60 · 3 ⇒ N(a1a2) = 3− 1 + 1 = 3.

⇒ Numarul cautat este N(a1) + N(a2)− N(a1a2) = 33 + 13− 3 = 43.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 1: Numere divizibile cu 2 numere relativ prime

Exemplu

Cate numere cuprinse ıntre 50 si 213 sunt divizibile cu 5 si 12?

Fie U = {n | 50 ≤ n ≤ 213}. Numarul de elemente al lui U esteN = 213− 50 + 1 = 164.

a1: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 5.

a2: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 12.

Primul numar din U divizibil cu 5 este 50 = 5 · 10. Ultimul numar din U divizibilcu 5 este 210 = 5 · 42 ⇒ N(a1) = 42− 10 + 1 = 33.

Primul numar din U divizibil cu 12 este 60 = 12 · 5. Ultimul numar din Udivizibil cu 12 este 204 = 12 · 17 ⇒ N(a2) = 17− 5 + 1 = 13.

Un numar are simultan proprietatile a1 si a2 daca este divizibil cu 5 · 12 = 60.Primul numar din U divizibil cu 60 este 60 = 60 · 1. Ultimul numar din Udivizibil cu 60 este 180 = 60 · 3 ⇒ N(a1a2) = 3− 1 + 1 = 3.

⇒ Numarul cautat este N(a1) + N(a2)− N(a1a2) = 33 + 13− 3 = 43.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 1: Numere divizibile cu 2 numere relativ prime

Exemplu

Cate numere cuprinse ıntre 50 si 213 sunt divizibile cu 5 si 12?

Fie U = {n | 50 ≤ n ≤ 213}. Numarul de elemente al lui U esteN = 213− 50 + 1 = 164.

a1: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 5.

a2: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 12.

Primul numar din U divizibil cu 5 este 50 = 5 · 10. Ultimul numar din U divizibilcu 5 este 210 = 5 · 42 ⇒ N(a1) = 42− 10 + 1 = 33.

Primul numar din U divizibil cu 12 este 60 = 12 · 5. Ultimul numar din Udivizibil cu 12 este 204 = 12 · 17 ⇒ N(a2) = 17− 5 + 1 = 13.

Un numar are simultan proprietatile a1 si a2 daca este divizibil cu 5 · 12 = 60.Primul numar din U divizibil cu 60 este 60 = 60 · 1. Ultimul numar din Udivizibil cu 60 este 180 = 60 · 3 ⇒ N(a1a2) = 3− 1 + 1 = 3.

⇒ Numarul cautat este N(a1) + N(a2)− N(a1a2) = 33 + 13− 3 = 43.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 1: Numere divizibile cu 2 numere relativ prime

Exemplu

Cate numere cuprinse ıntre 50 si 213 sunt divizibile cu 5 si 12?

Fie U = {n | 50 ≤ n ≤ 213}. Numarul de elemente al lui U esteN = 213− 50 + 1 = 164.

a1: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 5.

a2: proprietatea ca 50 ≤ n ≤ 213 si n este divizibil cu 12.

Primul numar din U divizibil cu 5 este 50 = 5 · 10. Ultimul numar din U divizibilcu 5 este 210 = 5 · 42 ⇒ N(a1) = 42− 10 + 1 = 33.

Primul numar din U divizibil cu 12 este 60 = 12 · 5. Ultimul numar din Udivizibil cu 12 este 204 = 12 · 17 ⇒ N(a2) = 17− 5 + 1 = 13.

Un numar are simultan proprietatile a1 si a2 daca este divizibil cu 5 · 12 = 60.Primul numar din U divizibil cu 60 este 60 = 60 · 1. Ultimul numar din Udivizibil cu 60 este 180 = 60 · 3 ⇒ N(a1a2) = 3− 1 + 1 = 3.

⇒ Numarul cautat este N(a1) + N(a2)− N(a1a2) = 33 + 13− 3 = 43.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 2: Functia ϕ a lui Euler

ϕ(n):= numarul ıntregilor 1 ≤ m < n cu gcd(m, n) = 1.

Exemplu: ϕ(24) = 8 deoarece sunt 8 intregi ıntre 1 si 23 carenu au factor comun cu 24: 1,5,7,11,13,17,19,23.

ϕ(n) joaca un rol important ın teoria numerelor.

ϕ(n) poate fi calculata cu Principiul Incluziunii si Excluziunii:

Presupunem ca n = pn11 . . . pnrr unde p1, . . . , pr sunt numere

prime distincte, si ni > 0 pentru 1 ≤ i ≤ r .Fie ai proprietatea “mai mic decat n si divizibil cu pi”(1 ≤ i ≤ r)

⇒ ϕ(n) = N0 =

n −∑i

N(ai ) +∑i<j

N(aiaj) + . . .+ (−1)rN(a1 . . . ar ).

N(ai1 . . . , aim) este numarul de elemente < n divizibile cu

pi1 · . . . · pim ⇒ N(ai1 . . . aim) =n

pi1 · . . . · pim.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 2: Functia ϕ a lui Euler

ϕ(n) = n −∑i

n

pi+∑i<j

n

pipj+ . . .+ (−1)n

n

p1p2 . . . pr

= nr∏

i=1

(1− 1

pi

).

Exemplu: ϕ(24) = ϕ(23 · 3) = 24 ·(

1− 1

2

)·(

1− 1

3

)= 8.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Observatie: Daca n nu este prim atunci n = a · b cu1 < a ≤ b ⇒ a2 ≤ n, deci a ≤

√n si n trebuie sa fie divizibil

cu un numar prim p ≤√n.

⇒ Criteriu de numarare a numerelor prime < n:

Incepem cu multimea N = {1, . . . , n} si numaramN0 = numarul de elemente ramase dupa ce se elimina dinmultimea N multiplii de numere prime p ≤

√n.

Numarul obtinut nu este tocmai cel dorit deoarece

nu am numarat numerele prime ≤√n

am numarat 1

Numarul cautat esteN0 + r − 1

unde r este numarul numerelor prime ≤√n.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Observatie: Daca n nu este prim atunci n = a · b cu1 < a ≤ b ⇒ a2 ≤ n, deci a ≤

√n si n trebuie sa fie divizibil

cu un numar prim p ≤√n.

⇒ Criteriu de numarare a numerelor prime < n:

Incepem cu multimea N = {1, . . . , n} si numaramN0 = numarul de elemente ramase dupa ce se elimina dinmultimea N multiplii de numere prime p ≤

√n.

Numarul obtinut nu este tocmai cel dorit deoarece

nu am numarat numerele prime ≤√n

am numarat 1

Numarul cautat esteN0 + r − 1

unde r este numarul numerelor prime ≤√n.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Observatie: Daca n nu este prim atunci n = a · b cu1 < a ≤ b ⇒ a2 ≤ n, deci a ≤

√n si n trebuie sa fie divizibil

cu un numar prim p ≤√n.

⇒ Criteriu de numarare a numerelor prime < n:

Incepem cu multimea N = {1, . . . , n} si numaramN0 = numarul de elemente ramase dupa ce se elimina dinmultimea N multiplii de numere prime p ≤

√n.

Numarul obtinut nu este tocmai cel dorit deoarece

nu am numarat numerele prime ≤√n

am numarat 1

Numarul cautat esteN0 + r − 1

unde r este numarul numerelor prime ≤√n.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Observatie: Daca n nu este prim atunci n = a · b cu1 < a ≤ b ⇒ a2 ≤ n, deci a ≤

√n si n trebuie sa fie divizibil

cu un numar prim p ≤√n.

⇒ Criteriu de numarare a numerelor prime < n:

Incepem cu multimea N = {1, . . . , n} si numaramN0 = numarul de elemente ramase dupa ce se elimina dinmultimea N multiplii de numere prime p ≤

√n.

Numarul obtinut nu este tocmai cel dorit deoarece

nu am numarat numerele prime ≤√n

am numarat 1

Numarul cautat esteN0 + r − 1

unde r este numarul numerelor prime ≤√n.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Observatie: Daca n nu este prim atunci n = a · b cu1 < a ≤ b ⇒ a2 ≤ n, deci a ≤

√n si n trebuie sa fie divizibil

cu un numar prim p ≤√n.

⇒ Criteriu de numarare a numerelor prime < n:

Incepem cu multimea N = {1, . . . , n} si numaramN0 = numarul de elemente ramase dupa ce se elimina dinmultimea N multiplii de numere prime p ≤

√n.

Numarul obtinut nu este tocmai cel dorit deoarece

nu am numarat numerele prime ≤√n

am numarat 1

Numarul cautat esteN0 + r − 1

unde r este numarul numerelor prime ≤√n.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Observatie: Daca n nu este prim atunci n = a · b cu1 < a ≤ b ⇒ a2 ≤ n, deci a ≤

√n si n trebuie sa fie divizibil

cu un numar prim p ≤√n.

⇒ Criteriu de numarare a numerelor prime < n:

Incepem cu multimea N = {1, . . . , n} si numaramN0 = numarul de elemente ramase dupa ce se elimina dinmultimea N multiplii de numere prime p ≤

√n.

Numarul obtinut nu este tocmai cel dorit deoarece

nu am numarat numerele prime ≤√n

am numarat 1

Numarul cautat esteN0 + r − 1

unde r este numarul numerelor prime ≤√n.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Cel mai mare numar prim ≤√

120 este 7

Consideram multimea universala N = {n ∈ N | 1 ≤ n ≤ 120} sieliminam din N toate elementele divizible cu un numar prim≤ 7. Altfel spus, eliminam din N toate elementele care au unadin proprietatile urmatoare:

a1 = ”este divizibil cu p1 = 2”a2 = ”este divizibil cu p2 = 3”a3 = ”este divizibil cu p3 = 5”a4 = ”este divizibil cu p4 = 7”

si obtinem o multime M cu N0 elemente.

I: Este N0 numarul pe care-l cautam?

R: Nu tocmai, fiindca:M contine toate numerele prime ıntre 1 si 120, cu exceptia luip1 = 2, p2 = 3, p3 = 5, p4 = 7.M contine 1, care nu este numar prim.

Numarul numerelor prime ≤ 120 este N0 + 4− 1.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Cel mai mare numar prim ≤√

120 este 7

Consideram multimea universala N = {n ∈ N | 1 ≤ n ≤ 120} sieliminam din N toate elementele divizible cu un numar prim≤ 7. Altfel spus, eliminam din N toate elementele care au unadin proprietatile urmatoare:

a1 = ”este divizibil cu p1 = 2”a2 = ”este divizibil cu p2 = 3”a3 = ”este divizibil cu p3 = 5”a4 = ”este divizibil cu p4 = 7”

si obtinem o multime M cu N0 elemente.

I: Este N0 numarul pe care-l cautam?

R: Nu tocmai, fiindca:M contine toate numerele prime ıntre 1 si 120, cu exceptia luip1 = 2, p2 = 3, p3 = 5, p4 = 7.M contine 1, care nu este numar prim.

Numarul numerelor prime ≤ 120 este N0 + 4− 1.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Cel mai mare numar prim ≤√

120 este 7Consideram multimea universala N = {n ∈ N | 1 ≤ n ≤ 120} sieliminam din N toate elementele divizible cu un numar prim≤ 7. Altfel spus, eliminam din N toate elementele care au unadin proprietatile urmatoare:

a1 = ”este divizibil cu p1 = 2”a2 = ”este divizibil cu p2 = 3”a3 = ”este divizibil cu p3 = 5”a4 = ”este divizibil cu p4 = 7”

si obtinem o multime M cu N0 elemente.

I: Este N0 numarul pe care-l cautam?

R: Nu tocmai, fiindca:M contine toate numerele prime ıntre 1 si 120, cu exceptia luip1 = 2, p2 = 3, p3 = 5, p4 = 7.M contine 1, care nu este numar prim.

Numarul numerelor prime ≤ 120 este N0 + 4− 1.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Cel mai mare numar prim ≤√

120 este 7Consideram multimea universala N = {n ∈ N | 1 ≤ n ≤ 120} sieliminam din N toate elementele divizible cu un numar prim≤ 7. Altfel spus, eliminam din N toate elementele care au unadin proprietatile urmatoare:

a1 = ”este divizibil cu p1 = 2”a2 = ”este divizibil cu p2 = 3”a3 = ”este divizibil cu p3 = 5”a4 = ”este divizibil cu p4 = 7”

si obtinem o multime M cu N0 elemente.

I: Este N0 numarul pe care-l cautam?

R: Nu tocmai, fiindca:M contine toate numerele prime ıntre 1 si 120, cu exceptia luip1 = 2, p2 = 3, p3 = 5, p4 = 7.M contine 1, care nu este numar prim.

Numarul numerelor prime ≤ 120 este N0 + 4− 1.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Cel mai mare numar prim ≤√

120 este 7Consideram multimea universala N = {n ∈ N | 1 ≤ n ≤ 120} sieliminam din N toate elementele divizible cu un numar prim≤ 7. Altfel spus, eliminam din N toate elementele care au unadin proprietatile urmatoare:

a1 = ”este divizibil cu p1 = 2”a2 = ”este divizibil cu p2 = 3”a3 = ”este divizibil cu p3 = 5”a4 = ”este divizibil cu p4 = 7”

si obtinem o multime M cu N0 elemente.

I: Este N0 numarul pe care-l cautam?

R: Nu tocmai, fiindca:M contine toate numerele prime ıntre 1 si 120, cu exceptia luip1 = 2, p2 = 3, p3 = 5, p4 = 7.M contine 1, care nu este numar prim.

Numarul numerelor prime ≤ 120 este N0 + 4− 1.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime

Cate numere prime sunt ıntre 1 si 120?

Cel mai mare numar prim ≤√

120 este 7Consideram multimea universala N = {n ∈ N | 1 ≤ n ≤ 120} sieliminam din N toate elementele divizible cu un numar prim≤ 7. Altfel spus, eliminam din N toate elementele care au unadin proprietatile urmatoare:

a1 = ”este divizibil cu p1 = 2”a2 = ”este divizibil cu p2 = 3”a3 = ”este divizibil cu p3 = 5”a4 = ”este divizibil cu p4 = 7”

si obtinem o multime M cu N0 elemente.

I: Este N0 numarul pe care-l cautam?

R: Nu tocmai, fiindca:M contine toate numerele prime ıntre 1 si 120, cu exceptia luip1 = 2, p2 = 3, p3 = 5, p4 = 7.M contine 1, care nu este numar prim.

Numarul numerelor prime ≤ 120 este N0 + 4− 1.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime (continuare)

Cate numere prime sunt ıntre 1 si 120?

N0 = 120−4∑

i=1

N(ai ) +∑i<j

N(aiaj)−∑

i<j<k

N(aiajak) +N(a1a2a3a4)

Observam ca N(ai1 . . . aim) =⌊

120pi1 ·...·pim

⌋(de ce?)

De exemplu:

N(a1) = b120/2c = 60, N(a2) = b120/3c = 40,N(a3) = b120/5c = 24, N(a4) = b120/7c = 17N(a1a2) = b120/(2 · 3)c = 20, N(a1a3) = b120/(2 · 5)c = 12,. . .N(a1a2a3a4) = b120/(2 · 3 · 5 · 7)c = b120/210c = 0

⇒ N0 = 120− (60 + 40 + 24 + 17) + (20 + 12 + 8 + 8 + 5 + 3)−(4 + 2 + 1 + 1) + 0 = 27.

Numarul pe care-l cautam este 27 + 4− 1 = 30

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime (continuare)

Cate numere prime sunt ıntre 1 si 120?

N0 = 120−4∑

i=1

N(ai ) +∑i<j

N(aiaj)−∑

i<j<k

N(aiajak) +N(a1a2a3a4)

Observam ca N(ai1 . . . aim) =⌊

120pi1 ·...·pim

⌋(de ce?)

De exemplu:

N(a1) = b120/2c = 60, N(a2) = b120/3c = 40,N(a3) = b120/5c = 24, N(a4) = b120/7c = 17N(a1a2) = b120/(2 · 3)c = 20, N(a1a3) = b120/(2 · 5)c = 12,. . .N(a1a2a3a4) = b120/(2 · 3 · 5 · 7)c = b120/210c = 0

⇒ N0 = 120− (60 + 40 + 24 + 17) + (20 + 12 + 8 + 8 + 5 + 3)−(4 + 2 + 1 + 1) + 0 = 27.

Numarul pe care-l cautam este 27 + 4− 1 = 30

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime (continuare)

Cate numere prime sunt ıntre 1 si 120?

N0 = 120−4∑

i=1

N(ai ) +∑i<j

N(aiaj)−∑

i<j<k

N(aiajak) +N(a1a2a3a4)

Observam ca N(ai1 . . . aim) =⌊

120pi1 ·...·pim

⌋(de ce?)

De exemplu:

N(a1) = b120/2c = 60, N(a2) = b120/3c = 40,N(a3) = b120/5c = 24, N(a4) = b120/7c = 17N(a1a2) = b120/(2 · 3)c = 20, N(a1a3) = b120/(2 · 5)c = 12,. . .N(a1a2a3a4) = b120/(2 · 3 · 5 · 7)c = b120/210c = 0

⇒ N0 = 120− (60 + 40 + 24 + 17) + (20 + 12 + 8 + 8 + 5 + 3)−(4 + 2 + 1 + 1) + 0 = 27.

Numarul pe care-l cautam este 27 + 4− 1 = 30

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime (continuare)

Cate numere prime sunt ıntre 1 si 120?

N0 = 120−4∑

i=1

N(ai ) +∑i<j

N(aiaj)−∑

i<j<k

N(aiajak) +N(a1a2a3a4)

Observam ca N(ai1 . . . aim) =⌊

120pi1 ·...·pim

⌋(de ce?)

De exemplu:

N(a1) = b120/2c = 60, N(a2) = b120/3c = 40,N(a3) = b120/5c = 24, N(a4) = b120/7c = 17N(a1a2) = b120/(2 · 3)c = 20, N(a1a3) = b120/(2 · 5)c = 12,. . .N(a1a2a3a4) = b120/(2 · 3 · 5 · 7)c = b120/210c = 0

⇒ N0 = 120− (60 + 40 + 24 + 17) + (20 + 12 + 8 + 8 + 5 + 3)−(4 + 2 + 1 + 1) + 0 = 27.

Numarul pe care-l cautam este 27 + 4− 1 = 30

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Principiul Incluziunii si ExcluziuniiAplicatia 3: numararea numerelor prime (continuare)

Cate numere prime sunt ıntre 1 si 120?

N0 = 120−4∑

i=1

N(ai ) +∑i<j

N(aiaj)−∑

i<j<k

N(aiajak) +N(a1a2a3a4)

Observam ca N(ai1 . . . aim) =⌊

120pi1 ·...·pim

⌋(de ce?)

De exemplu:

N(a1) = b120/2c = 60, N(a2) = b120/3c = 40,N(a3) = b120/5c = 24, N(a4) = b120/7c = 17N(a1a2) = b120/(2 · 3)c = 20, N(a1a3) = b120/(2 · 5)c = 12,. . .N(a1a2a3a4) = b120/(2 · 3 · 5 · 7)c = b120/210c = 0

⇒ N0 = 120− (60 + 40 + 24 + 17) + (20 + 12 + 8 + 8 + 5 + 3)−(4 + 2 + 1 + 1) + 0 = 27.

Numarul pe care-l cautam este 27 + 4− 1 = 30

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Bibliografie

1 Capitolul 2, Sectiunea 2.1: Generating Permutations of

S. Pemmaraju, S. Skiena. Combinatorics and Graph Theorywith Mathematica. Cambridge University Press 2003.

2 Capitolul 2, Sectiunile 2.4 si 2.5 din

J. M. Harris, J. L. Hirst, M.J. Mossinghoff. Combinatorics andGraph Theory. Second Edition. Springer 2008.

3 Capitolul 5 din

K. H. Rosen. Discrete Mathematics and Its Aplications. SixthEdition. McGraw Hill Higher Education. 2007.

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii

Generarea si ordonarea permutarilor. Principiul porumbeilor. Principiul incluziunii si excluziunii