Conteúdo 1 Princípios de Contagem e Enumeração Computacional Princípio da Multiplicação Gerando todas as palavras de um alfabeto Permutações > Princípios de Contagem e Enumeração Computacional 0/18
Objetivos Contar/listar o número de elementos de conjuntos finitos Aplicações Determinar o número de operações realizadas por um algoritmo para determinar sua eficiência Ferramenta utilizada para resolver problemas estatísticos Desenvolver o raciocínio dos alunos de ED > Princípios de Contagem e Enumeração Computacional 1/18
Objetivos Por que estudar problemas do tipo: 1 De quantas maneiras é possível dispor os alunos de uma turma em fila, sem que alunos com nomes consecutivos na ordem alfabética fiquem juntos? 2 Quantas permutações distintas tem a palavra MISSISSIPI? Duas justificativas: 1 Estes problemas são fáceis de formular; 2 As técnicas envolvidas na solução destes problemas podem ser aplicadas na resolução de problemas práticos > Princípios de Contagem e Enumeração Computacional 2/18
Objetivos Em algumas situações estamos interessados em calcular o número de elementos de um conjunto, enquanto que em outras desejamos listar todos os elementos de um conjunto. Exemplo Seja S o conjunto de todos os números de três algarismos que satisfazem as seguintes propriedades (i) todo algarismo pertence ao conjunto {2, 3, 6} (ii) nenhum algarismo pode repetir no mesmo número P1) Quantos elementos possui S? P2) Quem são os elementos de S? > Princípios de Contagem e Enumeração Computacional 3/18
Objetivos Exemplo Considere um caminhão que necessita entregar mercadorias em 12 localidades {L 1,..., L 12 } ao longo de um dia. Sabe-se que o consumo médio para ir da localidade L i para localidade L j é c ij, e que o caminhão deve partir de sua garagem e retornar para mesma. Considere que L 0 identifica a garagem. P1) Quantos trajetos distintos o caminhão pode percorrer? P2) Qual o trajeto que minimiza o consumo do caminhão? > Princípios de Contagem e Enumeração Computacional 4/18
Princípio da Multiplicação Uma das técnicas mais elementares de contagem é conhecida como princípio da multiplicação. Sejam os eventos E 1, E 2,..., E k. Se o evento E i, i = 1,..., k, pode ocorrer de n i formas diferentes e a forma com que o evento E i ocorre não influencia no número de formas que o evento E j pode ocorrer, i j, então a sequência de eventos E 1 E 2 E 3... E k pode ocorrer de n 1 n 2 n 3... n k formas diferentes. Exemplo Em uma placa de carro, as três primeiras posições são letras e as quatro restantes são dígitos. Quantas placas distintas são possíveis? > Princípios de Contagem e Enumeração Computacional 5/18
Princípio da Multiplicação O evento E i, i = 1, 2, 3, consiste em atribuir uma letra a i-ésima posição, enquanto que os eventos E 4, E 5, E 6, E 7 consistem em atribuir dígitos as posições 4, 5, 6 e 7 respectivamente. Logo temos, E i = 26, para i = 1, 2, 3 e E i = 10, para i = 4,..., 7. Segue do princípio da multiplicação que o número de placas é 10 4 26 3. > Princípios de Contagem e Enumeração Computacional 6/18
Princípio da Multiplicação Exemplo Quantas placas são possíveis de modo que nenhuma letra e nenhum dígito apareçam repetidos? > Princípios de Contagem e Enumeração Computacional 7/18
Princípio da Multiplicação Exemplo Seja S o conjunto dos números de telefone com as seguintes propriedades: (i) o número é formado de 8 dígitos (ii) o primeiro dígito pertence a {2,3,5,7} (iii) deve haver pelo menos um número repetido dentre os quatro últimos dígitos. Quantos elementos possui S? > Princípios de Contagem e Enumeração Computacional 8/18
Princípio da Multiplicação Exemplo Considere o trecho de código abaixo Para i=1,...l Para j=1,...m Para k=1,...n PRINT( OI ) Determine em função de m, n e l o número de vezes que o trecho de código imprime OI > Princípios de Contagem e Enumeração Computacional 9/18
Gerando todas as palavras de um alfabeto Problema de gerar todas as palavras de n letras a partir de um alfabeto com s letras distintas: O número de palavras possíveis é s n já que temos s possibilidades para primeira letra, s para segunda e assim por diante. > Princípios de Contagem e Enumeração Computacional 10/18
Gerando todas as palavras de um alfabeto Para listar todas as palavras de comprimento n utilizamos uma abordagem indutiva. O caso base, n = 1, consiste em gerar todas palavras com uma única letra, o que é trivial. Vamos assumir, como hipótese de indução, que sabemos gerar todas as palavras de comprimento k. Como isto ajuda a gerar todas as palavras de comprimento k + 1, ou seja, dar o passo? Note que para gerar o conjunto de todas as palavras de comprimento k + 1, devemos escolher uma letra do alfabeto para iniciar a palavra e depois concatenar a letra escolhida com cada uma das palavras possíveis de comprimento k (que sabemos gerar por hipótese). Esta rotina deve ser repetida para cada letra do alfabeto. > Princípios de Contagem e Enumeração Computacional 11/18
Gerando todas as palavras de um alfabeto PROCEDIMENTO GeraPalavras(i) Se i = 0 Imprima a palavra P Senão Para j = 1 até s Insira a letra A[j ] na posição n + 1 i de P GeraPalavras(i-1) Fim Para Fim Se MAIN Leia n, s, A P vetor global de n posições GeraPalavras(n) Figure : Algoritmo de geração de palavras > Princípios de Contagem e Enumeração Computacional 12/18
Permutações Utilizamos P(n, r) para denotar o número de sequências de r objetos distintos que podem ser formadas a partir de um conjunto de n objetos distintos. > Princípios de Contagem e Enumeração Computacional 13/18
Permutações Exemplo Sejam n = 4 objetos {o 1, o 2, o 3, o 4 } e r = 2. Quantas são as sequências possíveis de 2 objetos distintos? > Princípios de Contagem e Enumeração Computacional 14/18
Permutações Em geral, aplicando o princípio multiplicativo, obtemos que P(n, r) = n (n 1)... (n r + 1) = n! (n r)! A idéia é que temos n possibilidades para o primeiro elemento da seqüência, n 1 para o segundo, e assim sucessivamente, até n r para o r-ésimo elemento. > Princípios de Contagem e Enumeração Computacional 15/18
Permutações Exemplo Quantas palavras de 3 letras podem ser formadas com as letras da palavra compilar, se não for permitido repetir letras? > Princípios de Contagem e Enumeração Computacional 16/18
Permutações Exercício De quantas maneiras podem ser escolhidos o presidente e o vice-presidente de uma empresa, a partir de um grupo de 20 funcionários? > Princípios de Contagem e Enumeração Computacional 17/18
Permutações Exercício Uma biblioteca possui 4 livros sobre (S)ociologia, 7 livros sobre (P)rogramação e 3 sobre (E)xoterismo. De quantas maneiras podemos dispor estes livros em uma prateleira de modo que livros do mesmo assunto fiquem juntos? Devemos levar em conta a ordem dos assuntos na prateleira e as ordem dos livros de um mesmo assunto. Observe que existem 3! possibilidades de dispor os assuntos: SPE,SEP,PSE,PES,ESP,EPS. Para cada uma destas possibilidades, podemos permutar os livros do mesmo assunto de 7!4!3! formas. Logo, o total de possibilidades é 3!7!4!3!. > Princípios de Contagem e Enumeração Computacional 18/18