Vous êtes sur la page 1sur 51

INE5403 F UNDAMENTOS DE M ATEMTICA D ISCRETA PARA A C OMPUTAO

M ATERIAL
EXTRADO DOS LIVROS - TEXTOS I

(R OSEN /KOLMAN )

UFSC - CTC - INE

UFSC/CTC/INE p.

8 - I NTROD .

A NLISE C OMBINATRIA I

8.1) O Princpio do Pombal 8.2) Contagem de Conjuntos 8.3) Arranjos e Combinaes 8.4) Coecientes Binomiais 8.5) Arranjos e Combinaes Generalizados (Contagem de multiconjuntos) 8.6) Princpio da Incluso-Excluso Generalizado

UFSC/CTC/INE p.

C ONTAGEM
Problemas de Contagem aparecem muito em CC Por exemplo: precisamos contar o nro de operaes executadas por um algoritmo para poder avaliar a sua complexidade no tempo

UFSC/CTC/INE p.

C ONTAGEM
Veremos dois princpios bsicos da contagem: a regra da soma (ou: Princpio da Adio) a regra do produto (ou: Princpio da Multiplicao)

UFSC/CTC/INE p.

P RINCPIO DA ADIO
Suponha que uma tarefa pode ser feita em um entre n1 modos possveis ou um entre n2 modos possveis onde nenhum dos n1 modos de fazer a tarefa coincide com nenhum dos n2 modos de fazer a mesma tarefa ento h n1 + n2 modos de realizar a tarefa

UFSC/CTC/INE p.

P RINCPIO DA ADIO
Em termos de conjuntos, temos que: |A B| = |A| + |B|

desde que no haja duas tarefas que possam ser realizadas ao mesmo tempo

UFSC/CTC/INE p.

P RINCPIO DA ADIO ESTENDIDO


Suponha que uma tarefa pode ser feita em: um entre n1 modos possveis ou: um entre n2 modos possveis ou: etc... ou: um entre nm modos possveis onde nenhum ni modos de fazer a tarefa o mesmo que nenhum dos nj modos (i < j) ento o nmero de modos de realizar a tarefa n1 + n2 + + nm

UFSC/CTC/INE p.

P RINCPIO DA ADIO
Em termos de conjuntos, temos que: o que pode ser estendido para: |A1 A2 . . . Am | = |A1 | + |A2 | + . . . + |Am |
desde que no haja duas tarefas que possam ser realizadas ao mesmo tempo

|A B| = |A| + |B|

UFSC/CTC/INE p.

P RINCPIO DA ADIO
Exemplo 1: Um estudante tem que escolher um projeto em uma de 3 listas. As 3 listas contm 23, 15 e 19 possveis projetos, respectivamente. Quantas possibilidades de projetos h para escolher?

UFSC/CTC/INE p.

P RINCPIO DA ADIO
Exemplo 2: Qual o valor de k aps a execuo do cdigo:
k = 0 for i1 = 1 to n1 k = k + 1 end for i2 = 1 to n2 k = k + 1 end ... for im = 1 to nm k = k + 1 end

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Suponha que um procedimento possa ser subdividido em uma sequncia de duas tarefas, se: h n1 modos de fazer a 1a tarefa e n2 modos de fazer a 2a tarefa depois que a 1a esteja pronta ento: h n1 n2 modos de executar o procedimento

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Em termos de conjuntos, se A e B so conjuntos nitos, temos que: |A B| = |A|.|B|

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Exemplo 1: A ltima parte de um nmero de telefone tem 4 dgitos. Quantos nmeros de 4 dgitos existem?

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Exemplo 1: A ltima parte de um nmero de telefone tem 4 dgitos. Quantos nmeros de 4 dgitos existem? Resposta: podemos imaginar como o total de possibilidades de uma seqncia de 4 etapas de escolha de 1 dgito: 10 10 10 10 = 10000 2

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Exemplo 2: Quantos nmeros de 4 dgitos sem repeties de dgitos existem?

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Exemplo 2: Quantos nmeros de 4 dgitos sem repeties de dgitos existem? Resposta: novamente temos uma seqncia de 4 etapas mas no podemos usar o que j foi usado assim: 10 9 8 7 = 5040 2

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Exemplo 3: Uma empresa com 2 empregados, Lus e Incio, aluga um andar de um prdio com 12 salas. De quantos modos se pode atribuir salas diferentes a estes 2 empregados?

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Exemplo 3: Uma empresa com 2 empregados, Lus e Incio, aluga um andar de um prdio com 12 salas. De quantos modos se pode atribuir salas diferentes a estes 2 empregados? Resposta: tarefa de atribuir salas aos dois consiste de: 1. atribuir sala a Lus: o que pode ser feito de 12 modos 2. ento: atribuir sala a Incio, o que pode ser feito de 11 modos logo, pela regra do produto, existem: 12 11 = 132 opes para isto 2

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
A regra do produto pode ser estendida Suponha que um procedimento consiste na execuo das tarefas T1 , T2 , . . . , Tm em sequncia se: cada tarefa Ti pode ser feita de ni modos, independente de como as anteriores foram feitas, ento: h n1 n2 . . . nm modos de executar o procedimento

(Isto pode ser provado por induo, a partir da regra do produto para 2 tarefas)

UFSC/CTC/INE p. 1

P RINCPIO DA MULTIPLICAO
Em termos de conjuntos: |A1 A2 . . . Am | = |A1 |.|A2 |. . . . .|Am | Relao com a regra do produto:
execuo da tarefa escolher um elemento em |A1 A2 . . . Am |: escolher um elemento em A1 escolher um elemento em A2 ... escolher um elemento em Am

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 4: Quantas strings de 7 bits existem?

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 4: Quantas strings de 7 bits existem? Resposta: cada um dos 7 bits pode ser escolhido de 2 formas (0 ou 1) a regra do produto mostra que existe um total de: 27 = 128 strings diferentes de 7 bits 2

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 5: Quantas placas de carro esto disponveis?

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 5: Quantas placas de carro esto disponveis? Resposta: cada placa uma sequncia de 3 letras e 4 nmeros temos 26 opes para as letras e 10 opes para os nmeros logo, pela regra do produto, temos: 26 26 26 10 10 10 10 = 17576000 placas 2

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 6: Quantas funes injetoras existem, de um conjunto com m elementos para um conjunto com n elementos?

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 6: Quantas funes injetoras existem, de um conjunto com m elementos para um conjunto com n elementos? Resposta:
Nota: quando m > n no existem tais funes

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 6: Quantas funes injetoras existem, de um conjunto com m elementos para um conjunto com n elementos? Resposta:
Nota: quando m > n no existem tais funes Ento seja m n: suponha que os elementos no domnio sejam a1 , a2 , . . . , am temos n modos de escolher f (a1 )

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 6: Quantas funes injetoras existem, de um conjunto com m elementos para um conjunto com n elementos? Resposta:
Nota: quando m > n no existem tais funes Ento seja m n: suponha que os elementos no domnio sejam a1 , a2 , . . . , am temos n modos de escolher f (a1 ) j que a f injetora, restam n 1 modos de escolher f (a2 ) em geral: f (ak ) pode ser escolhido de n k + 1 modos

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 6: Quantas funes injetoras existem, de um conjunto com m elementos para um conjunto com n elementos? Resposta:
Nota: quando m > n no existem tais funes Ento seja m n: suponha que os elementos no domnio sejam a1 , a2 , . . . , am temos n modos de escolher f (a1 ) j que a f injetora, restam n 1 modos de escolher f (a2 ) em geral: f (ak ) pode ser escolhido de n k + 1 modos logo, pela regra do produto, existem: n (n 1) (n 2) (n m + 1) funes deste tipo 2

UFSC/CTC/INE p. 2

P RINCPIO DA MULTIPLICAO
Exemplo 7: Qual o valor de k aps a execuo do cdigo abaixo?
k = 0 for i1 = 1 to n1 for i2 = 1 to n2 . . . for im = 1 to nm k = k + 1

UFSC/CTC/INE p. 3

P RINCPIO DA MULTIPLICAO
Exemplo 7: Qual o valor de k aps a execuo do cdigo abaixo?
k = 0 for i1 = 1 to n1 for i2 = 1 to n2 . . . for im = 1 to nm k = k + 1

Resposta:
Seja Ti a tarefa: passar pelo i-simo loop #-vezes em que o loop aninhado percorrido = #-modos de realizar T1 , . . . , Tm mas: nro de modos de realizar a tarefa Tj nj passa-se pelo j-simo loop uma vez para cada inteiro ij (1 ij nj ) pela regra do produto, o loop aninhado percorrido n1 n2 nm vezes

UFSC/CTC/INE p. 3

A MBOS OS P RINCPIOS
Exemplo: Cada usurio em um dado sistema tem uma senha com 6 a 8 caracteres, onde: cada caracter uma letra maiscula ou um nmero cada senha tem que conter pelo menos 1 nmero ento quantas possibilidades de senhas existem?

UFSC/CTC/INE p. 3

A MBOS OS P RINCPIOS
Exemplo: Cada usurio em um dado sistema tem uma senha com 6 a 8 caracteres, onde: cada caracter uma letra maiscula ou um nmero cada senha tem que conter pelo menos 1 nmero ento quantas possibilidades de senhas existem? Resposta: P6 , P7 , P8 = senhas com 6,7 e 8 caracteres clculo de P6 : strings de letras maisculas e nmeros com 6 caracteres = 366 (incluindo as sem nmero algum) strings de letras maisculas e sem nro algum = 266 logo: P6 = 366 266

UFSC/CTC/INE p. 3

A MBOS OS P RINCPIOS
Exemplo: Cada usurio em um dado sistema tem uma senha com 6 a 8 caracteres, onde: cada caracter uma letra maiscula ou um nmero cada senha tem que conter pelo menos 1 nmero ento quantas possibilidades de senhas existem? Resposta: P6 , P7 , P8 = senhas com 6,7 e 8 caracteres clculo de P6 : strings de letras maisculas e nmeros com 6 caracteres = 366 (incluindo as sem nmero algum) strings de letras maisculas e sem nro algum = 266 logo: P6 = 366 266 de maneira similar: P7 = 367 267 P8 = 368 268 total = P6 + P7 + P8 = 2.684.483.063.360 senhas 2

UFSC/CTC/INE p. 3

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Sabe-se que em uma aula de uma certa disciplina da Medicina h 10 mulheres e 40 formandos. Quantos estudantes desta aula so mulheres ou formandos? Provavelmente, a resposta correta no adicionar a quantidadade de mulheres e formandos mulheres formandas seriam contadas duas vezes Logo, o nro de mulheres ou formandos a soma do nro de mulheres com o nro de formandos menos o nro de mulheres formandas

UFSC/CTC/INE p. 3

P RINCPIO DA INCLUSO E EXCLUSO


Se A e B so conjuntos nitos, ento: |A B| = |A| + |B| |A B|

UFSC/CTC/INE p. 3

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Sejam A = {a, b, c, d, e} e B = {c, e, f, h, k, m} A B = {a, b, c, d, e, f, h, k, m} A B = {c, e} |A B| = 9 Vericando: |A B| = 9 = 5 + 6 2 = |A| + |B| |A B| |A| = 5 |B| = 6 |A B| = 2

UFSC/CTC/INE p. 3

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Suponha que haja 450 calouros no CTC da UFSC. Destes, 48 esto cursando Computao, 98 esto cursando Eng. Mecnica e 18 esto em ambos os cursos. Quantos no esto cursando Computao nem Eng. Mecnica?

UFSC/CTC/INE p. 3

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Suponha que haja 450 calouros no CTC da UFSC. Destes, 48 esto cursando Computao, 98 esto cursando Eng. Mecnica e 18 esto em ambos os cursos. Quantos no esto cursando Computao nem Eng. Mecnica? Resposta: seja A = conjunto dos calouros em Computao e seja B = conjunto dos calouros em Eng. Mecnica ento: logo: |A B| = |A| + |B| |A B| = 48 + 98 18 = 128 (128 calouros esto cursando Comp. ou Eng. Mec.) Assim: h 450 128 = 322 calouros que no esto em nenhum dos 2 cursos. |A| = 48 |B| = 98 |A B| = 18

UFSC/CTC/INE p. 3

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Uma companhia de computao deve contratar 25 programadores para lidar com tarefas de programao de sistemas e 40 programadores para programao de aplicativos. Dos contratados, 10 tero que realizar tarefas de ambos os tipos. Quantos programadores devem ser contratados? Soluo: A = conjunto de programadores para sistemas B = conjunto de programadores para aplicativos Deve-se ter |A B| programadores = 55

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Quantas strings de 8 bits comeam com um 1 ou terminam com 00? Soluo: Pela regra do produto: podemos construir uma string de 8 bits que comea com 1 de 27 modos podemos construir uma string de 8 bits que termina com 00 de 26 modos

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Quantas strings de 8 bits comeam com um 1 ou terminam com 00? Soluo: Pela regra do produto: podemos construir uma string de 8 bits que comea com 1 de 27 modos podemos construir uma string de 8 bits que termina com 00 de 26 modos Porm, alguns modos de construir uma string comeando com 1 so os mesmos que os de construir uma string terminando com 00: existem 25 modos de construir uma string assim Logo, a resposta : 128 + 64 32 = 160 2

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo (aux): Quantos inteiros positivos n so divisveis por um inteiro d?

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo (aux): Quantos inteiros positivos n so divisveis por um inteiro d?

os inteiros positivos divisveis por d so todos os inteiros na forma d.k

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo (aux): Quantos inteiros positivos n so divisveis por um inteiro d?

os inteiros positivos divisveis por d so todos os inteiros na forma d.k logo: nro de inteiros positivos n divisveis por d = = nro de inteiros k tais que 0 < d.k n = nro de inteiros k tais que 0 < k n/d

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo (aux): Quantos inteiros positivos n so divisveis por um inteiro d?

os inteiros positivos divisveis por d so todos os inteiros na forma d.k logo: nro de inteiros positivos n divisveis por d = = nro de inteiros k tais que 0 < d.k n = nro de inteiros k tais que 0 < k n/d portanto, existem n/d inteiros positivos n que so divisveis por d 2

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Quantos inteiros positivos 1000 so divisveis por 7 ou por 11? Soluo (1/3): Seja A = { inteiros positivos 1000 que so divisveis por 7} Seja B = { inteiros positivos 1000 que so divisveis por 11} ento: A B = { inteiros positivos 1000 que so divisveis por 7 ou 11} A B = { inteiros positivos 1000 que so divisveis por 7 e 11}

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Quantos inteiros positivos 1000 so divisveis por 7 ou por 11? Soluo (2/3): do ex. anterior, sabemos que, entre os inteiros positivos 1000, existem: 1000/7 inteiros divisveis por 7 e 1000/11 inteiros divisveis por 11

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Quantos inteiros positivos 1000 so divisveis por 7 ou por 11? Soluo (2/3): do ex. anterior, sabemos que, entre os inteiros positivos 1000, existem: 1000/7 inteiros divisveis por 7 e 1000/11 inteiros divisveis por 11 mas, como 7 e 11 so relativamente primos: os inteiros divisveis por 7 e por 11 so os divisveis por 7 11 logo: h 1000/(7 11) inteiros 1000 divisveis por 7 e por 11

UFSC/CTC/INE p. 4

P RINCPIO DA INCLUSO E EXCLUSO


Exemplo: Quantos inteiros positivos 1000 so divisveis por 7 ou por 11? Soluo (3/3): a quantidade procurada , portanto, dada por: |A B| = |A| + |B| |A B|
1000 = 1000 + 1000 711 7 11

= 142 + 90 12 = 220 2

UFSC/CTC/INE p. 5

L EITURAS SOBRE C ONTAGEM


Rosen6: itens 5.1 e 7.5

UFSC/CTC/INE p. 5