Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Combinatória
|
|
- Giulia Ximenes de Sintra
- 5 Há anos
- Visualizações:
Transcrição
1 Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Combinatória Tópicos Especiais em Programação Site:
2 Aprendendo a contar A combinatória é o ramo da matemática que trata a contagem. Os problemas combinatórios são comuns e requerem perspicácia e atenção. Uma vez que o problema for olhado de maneira correta, a resposta pode tornar óbvia. As técnicas de contagem básicas são: Princípio da Multiplicação: se existem A possibilidades do conjunto A e B possibilidades do conjunto B, então existem A x B formas de combinar um elemento de A com um elemento de B. Princípio da Adição: x 5 ou 4 + Se existem A possibilidades em um conjunto A e B possibilidades em um conjunto B, então existem A + B formas de tanto A ou B ocorrerem assumindo que os elementos de A e B são distintos. 2
3 Princípio da Multiplicação Quantas linhas existe em uma tabela verdade com 5 proposições simples? Se uma criança pode escolher entre duas balas (uma rosa e uma preta) e entre três chicletes (um amarelo, um verde e outro branco), quantos conjuntos diferentes a criança pode ter? 3
4 Princípio da Adição Se tiver que escolher uma sobremesa entre três tortas e quatro bolos, de quantas maneiras isso pode ser feito? Um consumidor deseja comprar um veículo em uma concessionária. A concessionária tem 23 automóveis e 14 caminhões no estoque. Quantas escolhas possíveis o consumidor tem? * e + Se uma mulher tem sete blusas, cinco saias e nove vestidos, de quantas maneiras diferentes ela pode se vestir? 4
5 Princípio da Inclusão e Exclusão Ao somar dois conjuntos, tem que se tomar o cuidado de não somar o mesmo elemento duas vezes, pois o mesmo pode estar nos dois conjuntos O Princípio da Adição é um caso especial do Princípio da Inclusão e Exclusão. Tem-se que tomar cuidado, pois A-B, B A, A B são distintos A B Princípio da inclusão e exclusão para dois conjuntos: A B = A + B A B A B A B B A A B = A + B A B E para três: A B C = A + B + C A B A C B C + A B C 5
6 Princípio da Inclusão e Exclusão Um pesquisador de união pública entrevistou 35 eleitores, todos apoiando o referendo 1, o referendo 2, ou ambos. Ele descobriu que 14 eleitores apoiam o referendo 1 e 26 apoiam o referendo 2. Quantos eleitores apoiam ambos? Um grupo de estudantes está planejando encomendar pizzas. Se 13 comem calabresa, 10 comem salame, 12 comem queijo extra, 4 comem tanto calabresa quanto salame, 5 comem tanto salame quanto queijo extra, 7 comem tanto calabresa quanto queijo extra, 3 comem de tudo. Quantos estudantes há no grupo?. 6
7 Objetos Combinatoriais Uma bijeção é uma mapeamento um para um entre os elementos de um conjunto e os elementos do outro conjunto. Contando o tamanho de um dos conjuntos automaticamente lhe dará o tamanho do outro conjunto. A exploração de bijeções depende de um repertório de conjuntos que saibamos como contar. Assim, poderemos mapear outros objetos para eles. Isso é útil para saber (sentir) o quão rápido o número de objetos cresce. As técnicas comuns para mensurar isso serão discutidas nos próximos slides. 7
8 Permutação Uma permutação é um arranjo de n itens, onde cada item aparece exatamente uma vez. Há n! permutações diferentes permutações para n. As 3! = 6 permutações de três itens são 123, 132, 213, 231, 312 e 321. Para n = 10, n! =
9 Subconjuntos Um subconjunto é uma coleção de elementos de n possíveis itens. Existem 2n subconjuntos distintos de n coisas. Assim, existem 23 = 8 subconjuntos de {1,2,3}. Ex.: 1, 2, 3,12, 13, 23, 123, e o conjunto vazio (nunca se esqueça do conjunto vazio). Para n = 20, 2n =
10 Strings Uma string é uma sequência de itens que são organizados com repetição. Existem mn sequências distintas de n itens provenientes de m caracteres. Exemplo: existem 27 strings de tamanho 3 em 123. O número de strings binárias de tamanho n é idêntico ao número de subconjuntos de n itens (por quê?) 4bits: possuem 2 4 diferentes combinações... 10
11 Relações de Recorrência Relações de recorrência torna mais fácil a contagem de uma variedade de estruturas definidas recursivamente, como: Árvores; Listas; Fórmulas bem definidas; e Algoritmos dividir para conquistar. Uma relação de recorrência é uma equação que está definida em seus próprios termos, como os números de Fibonacci: F n = F n 1 + F n 2 11
12 Relações de Recorrência, por quê? Elas são úteis porque muitas funções naturais são expressas como recorrências: Polinomiais: Exponenciais: a n = a n 1 + 1, a 1 = 1 a n = n a n = 2a n 1, a 1 = 2 a n = 2 n Funções estranhas, mas interessantes e difíceis de representar: a n = na n 1, a 1 = 1 a n = n! Às vezes, é relativamente fácil encontrar uma recorrência como resposta de um problema de contagem. 12
13 Coeficientes Binomiais A classe mais importante de números contáveis são os coeficientes binomiais. O número de maneiras de escolher k coisas de n possibilidades é denotado por: O que eles contam? Comissões: Quantas maneiras existem para formar uma comissão de k membros retirados dentre n pessoas? A resposta é: ( n k) ( n k) Caminhos de uma rede (matriz): Quantas maneiras existem para viajar do canto superior esquerdo de uma matriz n x m para o canto inferior direito caminhando somente para baixo e para a direita? Cada caminho deve consistir de n+m passos, n para baixo e m para a direita. Todo o caminho com um conjunto diferente de movimentos é distinto, então temos o conjunto de caminhos: ( n+m n ) 13
14 Coeficientes Binomiais Leia: de n escolha k ( n k) = n! k!(n k)! 14
15 Coeficientes de (a + b) n Observe: (a + b) 3 = 1a 3 + 3a 2 b + 3ab 2 + 1b 3 Qual é o coeficiente do termo ak b n-k? A resposta é: ( n k) Porque ele conta a quantidade de maneiras que podemos escolher os k termos a em n possibilidades. A expressão (x+y)5 fica: ( 5 0) x5 y 0 + ( 5 1) x4 y 1 + ( 5 2) x3 y 2 + ( 5 3) x2 y 3 + ( 5 4) x1 y 4 + ( 5 5) x0 y 5 15
16 Implementação A seguinte implementação dessa recorrência é um bom exemplo das técnicas de programação utilizadas na programação dinâmica. Ela armazena uma matriz de resultados que nós podemos utilizar para definir os valores apropriados da recorrência. #define MAXN 100 long coeficientes_binomiais(int n, int k)/* de n escolha k */ { int i,j; long bc[maxn][maxn]; for (i=0; i<=n; i++) bc[i][0] = 1; for (j=0; j<=n; j++) bc[j][j] = 1; for (i=1; i<=n; i++) for (j=1; j<i; j++) bc[i][j] = bc[i 1][j 1] + bc[i 1][j]; } return( bc[n][k] ); 16
17 Fibonacci Várias outras sequências repetidamente aparecem em aplicações. Elas podem ser facilmente computadas utilizando relações de recorrência. Números de Fibonacci: Definidos pela recorrência F n = F n 1 + F n 2 e os valores iniciais F 0 = 0 and F 1 = 1. Esses números são muitos utilizados devido à sua característica e sua simplicidade. Os primeiros valores são 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, Fórmula para calcular os números de Fibonacci: F n = 1 (( 1+ (5) )n ( 1 (5) (5) 2 2 )n) 17
18 Números de Catalan Os números de Catalan formam uma sequência de números naturais que ocorrem em vários problemas de contagem Frequentemente, envolvem objetos definidos recursivamente. O número de Catalan é obtido pela seguinte fórmula: Ou: C n = 1 n+1 ( 2n n ) = (2n)! (n+1)! n! com n 0 C n = ( 2n n ) ( 2n n 1) com n 0 Mas também satisfazem a seguinte relação de recorrência: C 0 =1 e C n+1 = 2(2n+1) n+2 C n 18
19 Números de Catalan A expressão na forma de recursividade é: n=0 1 C n ={se n 1 se n>0 C i.c n 1 i i=0 n C n
20 Utilização dos Números de Catalan Empilhando moedas: Vamos empilhar moedas sobre uma linha de baixo que consiste de n moedas consecutivas. Não é permitido colocar moedas dos dois lados das moedas que estão no(s) extremo(s) da linha inferior. Então: Quantas maneiras existem para empilhar moedas sobre n moedas? n: O número de maneiras para empilhar moedas no plano. Solução: C n 20
21 Utilização dos Números de Catalan Balanceamento de Parênteses Queremos agrupar uma série de parênteses. Cada parênteses aberto deve ter uma correspondência de parênteses fechado. Então: Portanto, "(() ())" é válida, mas ") ()) ((" e "()) () (" não é. Quantos grupos existem para grupo de n pares de parênteses? n: O número de pares de parênteses. Solução: C n n = 0 Não fazer nada! 1 solução n = 1 () 1 solução n = 2 (( )) () () 2 soluções n = 3 ((( ))) (() ()) (()) () () (()) () () () 5 soluções 21
22 Utilização dos Números de Catalan Muitas soluções são equivalentes aos balanceamento de parênteses. Se quisermos conectar cinco pontos com dois arcos em uma linha deitada: 22
23 Utilização dos Números de Catalan Triangulação de polígonos: Queremos cortar um polígono convexo em triângulos, ligando os vértices com linhas retas que não se cruzam. De quantas maneiras diferentes existem para um polígono com N + 2 lados? Então: n: o número de lados do polígono 2 Solução: C n 23
24 Utilização dos Números de Catalan Árvores Binárias Quantos árvores binárias completas existem com n nós internos? Então: n: o número de nós internos sobre árvores binárias completas. Solução: C n 24
25 Números de Catalan Mais exemplos em: < < 25
26 Números Eulerianos Os números de Euler permitem contar o número de permutações de n elementos com k ascendentes. Uma permutação é um rearranjo de uma lista ordenada de itens. Um ascendente de uma permutação {a 1, a 2,, a n } é um par (a i, a i+1 ), tal que a i < a i+1. Exemplo: As permutações de {1,2,3} são: {1,2,3}, {1,3,2}, {2,1,3}, {2,3,1}, {3,1,2}, {3,2,1} As permutações com exatamente 1 ascendente são: {1,3,2}, {2,1,3}, {2,3,1}, {3,1,2} 3 1 =4 Sendo, n k = n 1 k +(n k+1) n 1 k 1 26
27 Partições Inteiras Uma partição inteira de n é um conjunto não ordenado de inteiros positivos que somam até n. Por exemplo, existem sete partições de 5, ou seja, (5), (4, 1), (3, 2), (3, 1, 1), (2, 2, 1), (2, 1, 1, 1), e (1, 1, 1, 1, 1). A maneira mais fácil de contá-las é a de definir uma função f(n, k), dando o número de partições inteiras de n com o maior valor sendo k. Como a maior parte faz ou não chegar ao limite, então f(n, k) = f(n - k, k) + f (n, k 1). As bases são f(1, 1) = 1 e f (n, k) = 0 quando k> n. 27
28 Recursividade Utilizando a recursividade: Devemos possuir um critério de parada; Os valores são armazenados na memória como uma pilha; A cada nova iteração, as variáveis de escopo são recriadas no novo espaço da pilha de memória; Pode sobrecarregar o sistema e demorar a fornecer a resposta; Pode gerar erros/problemas, devido à: Critérios de parada mau incrementados; Ponteiros mau alocados/referenciados; Métodos custosos de resolução. 28
29 Problemas Fáceis: Counting; The Priest Mathematician; How many Fibs? Intermediários: Steps; Expressions; Difíceis: How many pieces of land? 29
Contagem e Combinatória Elementar
Contagem e Combinatória Elementar Matemática Discreta I Rodrigo Ribeiro Departamento de Ciências Exatas e Aplicadas Universidade de Federal de Ouro Preto 11 de janeiro de 2013 Motivação (I) Combinatória
Leia maisAnálise Combinatória. Matemática Discreta. Prof Marcelo Maraschin de Souza
Análise Combinatória Matemática Discreta Prof Marcelo Maraschin de Souza Introdução Combinatória é o ramo da matemática que trata de contagem. Esses problema são importantes quando temos recursos finitos,
Leia maisCurso: Ciência da Computação Disciplina: Matemática Discreta 3. CONJUNTOS. Prof.: Marcelo Maraschin de Souza
Curso: Ciência da Computação Disciplina: Matemática Discreta 3. CONJUNTOS Prof.: Marcelo Maraschin de Souza 3. Conjuntos Definição: Um conjunto é uma coleção desordenada de zero ou mais objetos, denominados
Leia maisMatemática Discreta - 09
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta - 09 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Leia maisCIC 111 Análise e Projeto de Algoritmos II
CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 22 Combinatorics Binomial coefficients Catalan numbers Inclusion-exclusion Burnside
Leia maisRecursividade Exaustiva e Backtracking
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Recursividade Exaustiva e Tópicos Especiais em Programação Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com
Leia maisAnálise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (
Análise de Problemas Recursivos Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando de Recursividade Procedimento que chama a si mesmo Recursividade permite
Leia maisNotas sobre Sequências e Cardinalidade (1)
1 / 11 Notas sobre e Cardinalidade (1) Anjolina Grisi de Oliveira Centro de Informática Universidade Federal de Pernambuco CIn-UFPE 2 / 11 Uma sequência é uma estrutura discreta usada para representar
Leia maissignifica ( x)[(x S P (x)) (P (x) x S)]
Capítulo 2 Conjuntos e Contagem 2.1 Notação S = {2, 4, 6,... } (impreciso; conjuntos finitos) 1. 2 S 2. Se n S, então (n + 2) S S = {x x é um inteiro positivo par } S = {x P (x)} significa ( x)[(x S P
Leia maisTécnicas de análise de algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
Leia maisModelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos
Relações de recorrência 8. RELAÇÕES DE RECORRÊNCIA Introdução a relações de recorrência Modelagem com relações de recorrência Solução de relações de recorrência Exemplos e aplicações Relações de recorrência
Leia maisRecursividade, Tentativa e Erro
Recursividade, Tentativa e Erro Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC402 Aula 07 Algoritmos e Programação Avançada Na aula anterior Prova 2 Na aula de hoje Técnicas
Leia maisSumário. 2 Índice Remissivo 9
i Sumário 1 Teoria dos Conjuntos e Contagem 1 1.1 Teoria dos Conjuntos.................................. 1 1.1.1 Comparação entre conjuntos.......................... 2 1.1.2 União de conjuntos...............................
Leia maisREVISÃO DOS CONTEÚDOS
REVISÃO DOS CONTEÚDOS Prof. Patricia Caldana Seno, Cosseno e Tangente de um arco Dado um arco trigonométrico AP de medida α, chamam-se cosseno e seno de α a abscissa e a ordenada do ponto P, respetivamente.
Leia maisBCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.
Leia maisInterseção de Semiplanos
Interseção de Semiplanos Claudio Esperança Paulo Roma 1 Interseção de Semiplanos Problema consiste em construir a região convexa dada pela interseção de um conjunto de n semiplanos H = { h 1, h 2..., h
Leia maisAula 05: - Recursão (parte 1)
MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-20108 Recursão: Se você ainda não entendeu; Ver: "Recursão".
Leia maisFunções, Seqüências, Cardinalidade
Funções, Seqüências, Cardinalidade Prof.: Rossini Monteiro Noções Básicas Definição (Função) Sejam A e B conjuntos. Uma função de A em B é um mapeamento de exatamente um elemento de B para cada elemento
Leia maisMedida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então
Leia maisPRINCÍPIO FUNDAMENTAL DA CONTAGEM OU PRINCÍPIO MULTIPLICATIVO
ESTUDO DA ANÁLISE COMBINATÓRIA A resolução de problemas é a parte principal da Análise Combinatória, que estuda a maneira de formar agrupamentos com um determinado número de elementos dados, e de determinar
Leia maisINE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Leia maisRecursividade. Objetivos do módulo. O que é recursividade
Recursividade Objetivos do módulo Discutir o conceito de recursividade Mostrar exemplos de situações onde recursividade é importante Discutir a diferença entre recursividade e iteração O que é recursividade
Leia maisMatemática Discreta - 08
Universidade Federal do Vale do São Francisco urso de Engenharia da omputação Matemática Discreta - 08 Prof. Jorge avalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Leia maisINE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/18 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos
Leia maisRecursividade. Prof. Jesus José de Oliveira Neto
Recursividade Prof. Jesus José de Oliveira Neto Algoritmos podem ser definidos de duas formas: Forma iterativa ou não recursiva: utiliza laços de repetição (while, for, do/while) Forma recursiva: métodos
Leia maisAula 05: - Recursão (parte 1)
MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-20107 1 Recursão: Se você ainda não entendeu; Ver: "Recursão". Efeito Droste Anuncio
Leia maisMarcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia. 9 de Novembro de 2017
Árvores Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia 9 de Novembro de 2017 Aula de hoje Nesta aula veremos Árvores Problemas recorrentes em Análise de Algoritmos Contagem
Leia maisAula prática 5. Funções Recursivas
Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário
Leia maisPROBABILIDADE E ESTATÍSTICA. Profa. Dra. Yara de Souza Tadano
PROBABILIDADE E ESTATÍSTICA Profa. Dra. Yara de Souza Tadano yaratadano@utfpr.edu.br Aula 5 09/2014 Probabilidade Espaços Amostrais e Eventos Probabilidade e Estatística 3/41 Experimentos Aleatórios Experimento
Leia maisMatemática Discreta - 07
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta - 07 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Leia maisXIX Semana Olímpica de Matemática. Nível 3. Funções Geratrizes. José Armando Barbosa
XIX Semana Olímpica de Matemática Nível 3 Funções Geratrizes José Armando Barbosa O projeto da XIX Semana Olímpica de Matemática foi patrocinado por: Funções Geratrizes Semana Olímpica/206 Prof. Armando
Leia maisPrograma Combinatória Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 52
1 / 52 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 52 Programa 1 Combinatória 2 Aritmética Racional 3 Grafos 3 / 52 Capítulo 1 Combinatória 4 / 52 Princípio
Leia maisNOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016
NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 Metaheurística: São técnicas de soluções que gerenciam uma interação entre técnicas de busca local e as estratégias de nível superior para criar um processo de
Leia maisMais Permutações e Combinações (grupo 2)
Capítulo 4 Mais Permutações e Combinações (grupo 2) Como vimos anteriormente, é possível resolver um grande número de problemas interessantes de contagem sem utilizar fórmulas, apenas empregando apropriadamente
Leia maisALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão
Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 2.1 - Definições recursivas 2.2 - Como implementar recursividade 2.3 - Quando não usar recursividade 2.4 - Desenvolvendo algoritmos
Leia maisIntrodução Paradigmas
Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens
Leia maisRESOLUÇÃO DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA Considere a soma. S n = n 2 n 1
DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA 1 1. Considere a soma S n = 1 2 0 + 2 2 1 + 3 2 2 + + n 2 n 1. Mostre, por indução finita, que S n = (n 1)2 n + 1. Indique claramente a base da indução, a
Leia maisAnálise de Algoritmos Parte 4
Análise de Algoritmos Parte 4 Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 07 Algoritmos e Estruturas de Dados I Como escolher o algoritmo mais adequado para uma situação? (continuação)
Leia maisIntrodução a Algoritmos Parte 08
Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 08 (Baseado no Material do Prof. Marcelo Linder) Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br
Leia maisProf. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35
INE5603 Introdução à POO Prof. A. G. Silva 25 de setembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de 2017 1 / 35 Baseado em materiais da Recursividade Unisinos, Cesar Tacla (UTFPR),
Leia maisDesafios de Programação
Desafios de Programação 2018.1 Programação Dinâmica É um método de projeto de algoritmos que utiliza a memorização para melhorar a eficiência de um algoritmo. Método parecido com o de divisão e conquista
Leia maisMatemática Discreta. Aula 01: Análise Combinatória I. Tópico 01: Princípio fundamental de contagem
Tópico 01: Princípio fundamental de contagem Aula 01: Análise Combinatória I A principal função da análise combinatória é desenvolver técnicas para a contagem de conjuntos. Dito assim, parece simples e
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Principais paradigmas do projeto de algoritmos - Recursividade - Tentativa e erro - Divisão e Conquista - Programação dinâmica - Algoritmos Gulosos e de Aproximação
Leia maisMatemática Discreta - 06
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta - 06 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Leia mais4. COMBINATÓRIA BÁSICA. Combinatória: ramo da matemática que trata de arranjos de objetos (configurações satisfazendo propriedades específicas).
Combinatória básica Introdução INTRODUÇÃO 4. COMBINATÓRIA BÁSICA Introdução Regra da soma e do produto Modelo de amostragem Modelo de distribuição Modelo de equação Identidades combinatórias Coeficientes
Leia maisEstrutura de Dados Conceitos Iniciais
Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 04 DPEE 08 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Leia maisUnidade IV ESTATÍSTICA. Prof. Fernando Rodrigues
Unidade IV ESTATÍSTICA Prof. Fernando Rodrigues Análise combinatória Analise combinatória é a área da Matemática que trata dos problemas de contagem. Ela é utilizada para contarmos o número de eventos
Leia maisAnálise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
Leia maisINE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/20 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos
Leia maisTópicos Avançados em Algoritmos - exercícios de Prog. Din. com correcção parcial
Armando Matos, 2008/2009 Tópicos Avançados em Algoritmos - exercícios de Prog. Din. com correcção parcial 1. Optimizar o produto de matrizes Considere o problema da parentização óptima de uma multiplicação
Leia mais1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco.
Segunda lista de exercícios v100 Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz Bonetti SSC0300 Linguagem de Programação e Aplicações 1 Faça um programa que leia uma string
Leia maisNúmeros Naturais. MA12 - Unidade 1. Os Axiomas de Peano. O Axioma da Indução. Exemplo: uma demonstração por indução
Os Números Naturais MA1 - Unidade 1 Números Naturais Paulo Cezar Pinto Carvalho PROFMAT - SBM January 7, 014 Números Naturais: modelo abstrato para contagem. N = {1,,3,...} Uma descrição precisa e concisa
Leia maisUniversidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Ordenação
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Ordenação Tópicos Especiais em Programação Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com
Leia maisLista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013
Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void
Leia maisAula 06: Análise matemática de algoritmos recursivos
Aula 06: Análise matemática de algoritmos recursivos David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento
Leia maisMarcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia
Introdução à Análise de Algoritmos Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Aula de hoje Nesta aula veremos: Sobre a disciplina Exemplo: ordenação Sobre a disciplina
Leia maisConjuntos Contáveis e Não Contáveis / Contagem
Conjuntos Contáveis e Não Contáveis / Contagem Introdução A história nos mostra que desde muito tempo o homem sempre teve a preocupação em contar objetos e ter registros numéricos. Seja através de pedras,
Leia maisBruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Recursividade
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Recursividade Conceito de Recursividade Fundamental em Matemática e Ciência da Computação Um programa recursivo é um programa que chama a si mesmo
Leia maisComputação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa
Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo
Leia maisRecursividade e relações de recorrência
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta - 06 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Leia maisOtimização Combinatória - Parte 4
Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional
Leia maisDivisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).
Divisão e Conquista Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 27 Divisão e Conquista É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Consiste em 3 passos: Dividir
Leia maisLista 2 - PMR2300/3200
Lista 2 - PMR2300/3200 Fabio G. Cozman, Thiago Martins 8 de março de 2015 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u
Leia maisINE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/27 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos
Leia maisProbleminhas pseudoalgébricos com soluções elegantemente carteadas
Probleminhas pseudoalgébricos com soluções elegantemente carteadas XXII Semana Olímpica Nível 3 George Lucas 1. Sejam a, b e c números reais positivos. Prove a desigualdade: Solução: a ab + b + b bc +
Leia maisAlgoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
Leia maisSUMÁRIO. Unidade 1 Matemática Básica
SUMÁRIO Unidade 1 Matemática Básica Capítulo 1 Aritmética Introdução... 12 Expressões numéricas... 12 Frações... 15 Múltiplos e divisores... 18 Potências... 21 Raízes... 22 Capítulo 2 Álgebra Introdução...
Leia maisProjeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica. Prof. Humberto Brandão
Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas versão da aula: 0.3 Programação Dinâmica
Leia mais8 ANÁLISE COMBINATÓRIA E
MATEMATICA 8 ANÁLISE COMBINATÓRIA E PROBABILIDADE NOME ESCOLA EQUIPE SÉRIE PERÍODO DATA PERMUTAÇÕES SIMPLES EXEMPLO QUANTOS NÚMEROS, DE 3 ALGARISMOS DISTINTOS, PODEMOS FORMAR COM OS DÍGITOS 7, 8 E 9? Temos
Leia maisBCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Avisos 2 Avisos Prova no dia 07 de Junho (em 11 dias). 3 Na aula anterior Backtracking. 4 Na
Leia maisProgramação I Aula 15 Definições recursivas Pedro Vasconcelos DCC/FCUP
Programação I Aula 15 Definições recursivas DCC/FCUP DCC/FCUP 2019 1/ 30 Nesta aula 1 Definições recursivas 2 Exemplos Factorial Floco de neve de Koch Torre de Hanoi DCC/FCUP 2019 2/ 30 Recursividade Uma
Leia maisEstruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
Leia maisExercícios: Recursão
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Recursão 1. Faça uma função recursiva que calcule e retorne o fatorial
Leia maisProgramação I Aula 15 Definições recursivas
Programação I Aula 15 Definições recursivas Pedro Vasconcelos DCC/FCUP 2018 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 15 Definições recursivas 2018 1 / 30 Nesta aula 1 Definições recursivas 2 Exemplos
Leia maisTécnicas de projeto de algoritmos: Indução
Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 08/2008
Leia maisn! = n (n 1) (n 2) 1.
Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso - IFMT Campus Várzea Grande Aula - Análise Combinatória e Probabilidade Prof. Emerson Dutra E-mail: emerson.dutra@vgd.ifmt.edu.br Página
Leia maisCombinatória. Samuel Barbosa. 28 de março de 2006
Combinatória Samuel Barbosa 28 de março de 2006 1 Princípios Básicos de Contagem Em contagem, tentamos abordar o problema de contar o número de elementos de um conjunto sem efetivamente contá-los de um
Leia maisMarcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia. 23 de Março de 2018
Relações de Recorrência Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia 23 de Março de 2018 Aula de hoje Nesta aula veremos Conceitos de Relações de Recorrência Resolução
Leia maisLista de Exercício de Linguagens de Programação Prog. Funcional
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE CIÊNCIA E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO Lista de Exercício de Linguagens de Programação Prog. Funcional 1) Construa uma função del_posicao_n ::
Leia maisProjeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )
Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista (2.1-2.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material desenvolvido por Andréa Iabrudi
Leia maisProf. Dr. Lucas Santana da Cunha de abril de 2018 Londrina
Análise Combinatória Prof. Dr. Lucas Santana da Cunha email: lscunha@uel.br http://www.uel.br/pessoal/lscunha/ 18 de abril de 2018 Londrina 1 / 11 Análise Combinatória A Análise Combinatória é a parte
Leia maisESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron
Leia maisCI811 Tópicos em Algoritmos
CI811 Tópicos em Algoritmos Problemas 15 de junho de 2016 Aqui segue uma lista com alguns problemas computacionais para serem trabalhados pelos alunos da disciplina de Tópicos em Algoritmos (CI811) do
Leia maisAnálise Combinatória
Introdução Análise combinatória PROBLEMAS DE CONTAGEM Princípio Fundamental da Contagem Exemplo: Um número de telefone é uma seqüência de 8 dígitos, mas o primeiro dígito deve ser diferente de 0 ou 1.
Leia maisESTUDO DA ANÁLISE COMBINATÓRIA
ESTUDO DA ANÁLISE COMBINATÓRIA A resolução de problemas é a parte principal da Análise Combinatória, que estuda a maneira de formar agrupamentos com um determinado número de elementos dados, e de determinar
Leia maisLista de exercícios sobre contagem de operações Prof. João B. Oliveira
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.
Leia maisUNITAU APOSTILA ANÁLISE COMBINATÓRIA PROF. CARLINHOS
ESCOLA DE APLICAÇÃO DR. ALFREDO JOSÉ BALBI UNITAU APOSTILA ANÁLISE COMBINATÓRIA PROF. CARLINHOS NOME DO ALUNO: Nº TURMA: blog.portalpositivo.com.br/capitcar 1 ANÁLISE COMBINATÓRIA A Análise Combinatória
Leia maisTE802 Processos Estocásticos em Engenharia. Informação sobre a disciplina Notes. Processos Estocásticos em Engenharia Conteúdo Notes.
TE802 Processos Estocásticos em Engenharia Conceitos Básicos de Teoria de Probabilidade 7 de março de 2016 Informação sobre a disciplina Terças e Quintas feiras das 09:30 às 11:20 horas Professor: Evelio
Leia mais1 Análise combinatória
Matemática Discreta September 11, 2018 1 1 Análise combinatória 1.1 Alguns princípios básicos Teorema (Princípio da adição). Se {A i },..,N é uma família (finita) de conjuntos FINITOS, mutuamente disjuntos,
Leia maisAnálise Combinatória e Probabilidade
Análise Combinatória e Probabilidade Exemplo: NOME ESCOLA EQUIPE SÉRIE PERÍODO DATA PERMUTAÇÕES SIMPLES -Roteiro do aluno- QUANTOS NÚMEROS, DE 3 ALGARISMOS DISTINTOS, PODEMOS FORMAR COM OS DÍGITOS 7, 8
Leia maisContagem. Próxima Aula: Prova
Contagem Próxima Aula: Prova Conteúdo Correção dos Exercícios Exercício 1 Em época de eleição para o grêmio estudantil do colégio, tiveram 12 candidatos aos cargos de presidente, vice-presidente e secretário.
Leia maisEstruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma
Leia maisComparação com Divisão e Conquista
Programação Dinâmica Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Leia maisSolução da prova da 1.ª Fase. b) Queremos os números interessantes do tipo ABC6. Isso implica que A x B x C = 6. Temos dois casos a considerar:
Solução da prova da 1.ª Fase Nível 3 Ensino Médio 1. a Fase 15 de setembro de 018 QUESTÃO 1 a) Para que o número 14A8 seja interessante devemos ter: 1 x 4 x A = 8; logo, A =. b) Queremos os números interessantes
Leia maisSlide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.
Slide 01 16/03/2017 Estruturas de Dados Prof. Cleziel Franzoni da Costa 1 @Cleziel /Cleziel cleziel@hotmail.com 42 3 EMENTA Listas lineares e suas variações. Filas e pilhas. Árvores binárias e suas variações.
Leia maisTécnicas de Programação
Técnicas de Programação Algoritmos Anderson Gomes Eleutério Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir
Leia maisO termo Programação Dinâmica é um bocado infeliz.
Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Leia mais