Resolução Computacional de Problemas de Contagem:
|
|
- Antônio Freire Canário
- 6 Há anos
- Visualizações:
Transcrição
1 Resolução Computacional de Problemas de Contagem: Como o computador pode nos ajudar a resolver problemas de contagem? Lucio S. Fassarella DMA/CEUNES/UFES October 1, 01 Abstract Breve discussão e exemplos de resolução de problemas de contagem na forma de algoritmo. Introdução Eu realmente acredito que os problemas são o coração da Matemática. P.R. Halmos [7]. Aqui discuto a resolução computacional ou algorítmica de problemas de contagem, i.e., na forma de algoritmos que podem ser programados num computador. Como alternativa para resolver problemas de contagem, sua principal vantagem está em nos permitir focalizar o trabalho na compreensão e no desenvolvimento de estratégias para resolver os problemas sem preocupação com a realização de cálculos tediosos, ao preço da necessidade de elaborar um algoritmo e posteriormente programá-lo no computador. Uma classe ampla de problemas de contagem pode ser naturalmente resolvida pela estratégia da função característica, que possui um algoritmo-solução com estrutura genérica bastante simples. Antes de apresentar a estratégia da função característica, vamos ilustrar a ideia geral abordando alguns problemas típicos de contagem mediante outras estratégias. 3 Exemplos Gerais 3.1 Um problema de anagramas Problema: Quantos anagramas possui a palavra estrela? Pelo signi cado de anagrama, interpretamos que o problema pergunta pelo número de sequências distintas que podem ser construidas pela permutação dos termos da sequência (e; s; t; r; e; l; a). Considerando que a palavra possui sete letras, segue que cada permutação p de f1; ; 3; ; 5; ; 7g de ne um anagrama A (p) de estrela através da correspondência e s t r e l a l l l l l l l posição posição posição posição posição p () p (3) p () p (5) p () posição p (1) posição p (7) : Por exemplo, se p é a permutação p (1) = ; p () = 3; p (3) = ; p () = 5; p (5) = ; p () = 7; p (7) = 1; então A (p) = aestrel. 1
2 Deve estar claro que a correspondência entre as permutações de f1; ; 3; ; 5; ; 7g e os anagramas de estrela é uma função sobrejetiva mas não é injetiva, pelo fato da primeira e quinta letras da palavra serem iguais a e. Mais precisamente, denote por a permutação que troca os números 1 e 5 de posição, mantendo os demais números invariantes, (1) = 5; () = ; (3) = 3; () = ; (5) = 1; () = ; (7) = 7; então, duas permutações p e q de f1; ; 3; ; 5; ; 7g produzem o mesmo anagrama de estrela se, e somente se, uma é igual a outra composta com : Por exemplo, a permutação q dada por A (q) = A (p) () q = p: q (1) = ; q () = 3; q (3) = ; q () = 5; q (5) = ; q () = 7; q (7) = 1; cumpre q = p (p dada acima) e de ne o mesmo anagrama que p, como se pode veri car. A ideia fundamental do nosso algoritmo para resolver o problema está em comparar as permutações de f1; ; 3; ; 5; ; 7g entre si, contando uma, e somente uma, para cada anagrama distinto da palavra estrela. Para tanto, vamos assumir que conhecemos uma enumeração do conjunto das permutações de f1; ; 3; ; 5; ; 7g, digamos U = fp 1 ; :::; p n! g: começando com p 1 contamos uma permutação; se p é diferente de p 1, então contamos mais uma permutação, senão continuamos com o número anterior; se p 3 é diferente tanto de p 1 quanto de p, então contamos mais uma permutação, senão continuamos com o número anterior; e assim por diante... Formalizamos o algoritmo do seguinte modo: Algoritmo Entrada: U = fp 1 ; :::; p n! g ; n 1 R = 1; De k = até k = n! faça: c = 1; De j = 1 até j = k 1 faça: [Se p k = p j então c = c senão c = 0; Retorne c; R = R + c; Retorne R; Saída: R Para testar o algoritmo, podemos executá-lo e comparar os resultados com aqueles obtidos por enumeração explícita, nos casos de pequenos valores de n: N () = 1, N (3) =, N () = Uma problema com solução na forma de recorrência Consideramos como caso especial de resolução computacional as soluções de problemas de contagem dadas na forma de fórmulas de recorrência, porque elas possuem a forma de algoritmos. Problema: Dados números reais x 1 ; :::; x n (n ), determine o número a (n) de modos de dispor parênteses para indicar a ordem em que deve ser feita a adição x 1 + :::: + x n. Exemplos: n a (n) modos de dispor os parênteses 1 (x 1 + x ) ; 3 ((x 1 + x ) + x 3 ) ; (x 1 + (x + x 3 )) ; 5 (((x 1 + x ) + x 3 ) + x ) ; ((x 1 + (x + x 3 )) + x ) ; (x 1 + ((x + x 3 ) + x )) ; (x 1 + (x + (x 3 + x ))) ; ((x 1 + x ) + (x 3 + x )) :
3 Uma alternativa para resolver o problema é agrupar a soma dos n números em duas partes: a primeira envolvendo as primeiras r parcelas e a segunda envolvendo as n r parcelas seguintes, com r variando de 1 a n 1. Para cada r xado entre 1 e n 1, os números de modos de dispor os parênteses na primeira e na segunda partes são independentes, implicando que o total é dado pelo produto de a (r) a (n r). Os agrupamentos determinam uma partição do conjunto dos modos de dispor os parênteses; portanto, o número total desses modos é a soma dos números de modos de correspondentes a cada agrupamento: Algoritmo Entrada: n a (1) = 1; De h k = até k = n faça: a (k) = P k 1 r=1 a (r) a (r 1) ; Retorne a (n) ; Saída: a (n) nx 1 a (n) = a (r) a (n r) : r=1 Para testar o algoritmo, podemos executá-lo e comparar os resultados com aqueles obtidos por enumeração explícita, nos casos de pequenos valores de n: a () = 1, a (3) =, a () = 5. Estratégia da Função Característica Aqui apresento a estratégia da função característica, um modo simples e direto para resolver problemas de contagem na forma de algoritmo. Ela pode ser aplicada de modo imediato quando a solução do problema é dada pelo número de elementos de um conjunto E caracterizado como subconjunto de um conjunto nito e conhecido U por um número nito de propriedades em U, de nidas matematicamente como funções de U em f0; 1g; nesse caso, chamamos U de conjunto universo e E de conjunto objetivo e a função característica de E é de nida por 1; u E; : U! f0; 1g ; (u) = 0; u = E: Observação 1 Informalmente, uma propriedade num conjunto U é uma qualidade que pode ser testada nos elementos de U. Formalmente, dizemos que uma propriedade P em U é uma função (qualquer) P : U! V, de modo que P (u) = v signi ca u possui valor v para a propriedade P. 1 Nesse caso, dizer que E é o subconjunto de U caracterizado pelos valores v 1 ; :::; v m das propriedades P k, respectivamente signi ca que u E se, e somente se, u U e P k (u) = v k para todo k f1; :::; mg, ou seja E = fu U = P k (u) = v k ; 8k = 1; :::; mg : Nesse caso, a função característica de E é dada por 1; Pk (u) = v : U! f0; 1g ; (u) = k ; 8k = 1; :::; m; 0; no caso contrário. Por exemplo, se U é o conjunto dos números inteiros positivos menores do que 015, o conjunto E dos números inteiros positivos menores do que 015 que são primos ímpares é o subconjunto de U constituido 1 Dizemos que P é uma propriedade binária em U quando seu contra domínio é um conjunto com apenas dois elementos, ff; V g. Nesse caso, podemos convencionar que P (u) = V signi ca u U possui a propriedade P ou P (u) é verdadeira, enquanto P (u) = F signi ca u U não possui a propriedade P ou P (u) é falsa. Naturalmente, toda propriedade cujo contra-domínio é nito pode ser decomposta como conjunção de propriedades binárias. 3
4 por aqueles elementos que possuem as propriedades P 1 de ser primo e P de ser ímpar, simultaneamente: U = f1; ; :::; 015g ; 1; se u é primo, P 1 : U! f0; 1g ; P 1 (u) = 0; se u não é primo, 1; se u é ímpar, P : U! f0; 1g ; P (u) = : 0; se u par, E = fu U = P 1 (u) = 1; P (u) = 1g : Suponha que num problema de contagem deduzimos que sua resposta é igual ao número de elementos de um subconjunto E de um conjunto U tais que i) U é um conjunto nito com enumeração conhecida, digamos U = fu 1 ; :::; u n g; ii) E é um subconjunto de U caracterizado por um conjunto nito de propriedades, digamos P 1 ; :::; P m. Então, para obter a solução do problema basta contar o número de elementos de E, tarefa que podemos descrever forma de um algoritmo usando função característica de E. Então, as condições bastam para que possamos resolver o problema de contagem e aplicar a estratégia da função característica: Estratégia da Função Característica Com base na interpretação do problema de contagem, i) de na e enumere o conjunto universo U, identi cando o conjunto objetivo E; ii) de na as propriedades e os valores que juntas caracterizam E; iii) escreva o Algoritmo de Contagem Entrada: U = fu 1 ; :::; u w g ; (* conjunto universo *) P k : U! V k ; k = 1; :::; m; (* propriedades características de E *) : U! f0; 1g ; se P k (u) = v k ; 8k = 1; :::; m, então (x) = 1, senão (x) = 0; R = 0; (* inicialização da contagem *) De j = 1 até j = w faça: [Se (u j ) = 1 então R = R + 1, senão R = R; Retorne R; Saída: R: iv) programe o Algoritmo de Contagem no computador; v) execute o algoritmo. Observação No algoritmo, destacamos que (u) = 1 se, e somente se, o seguinte algoritmo retorna 1: c = 1; De j = 1 até j = m faça: [Se P j (u) = 1 então c = c senão c = 0; Retorne c. Naturalmente, o Algoritmo de Contagem e sua programação no computador devem ser validados para garantir que o resultado da execução do programa seja realmente a resposta do problema; se não for possível demonstrar que a programação do algoritmo está correta, pode ser su ciente aplicar alguns testes ao programa para nos convencer de sua correção []. Aqui, a notação (*... *) indica um comentário.
5 .1 Problemas & Soluções.1.1 O problema das permutações caóticas Problema: Dado n N, qual é o número de permutações do conjunto de números naturais f1; :::; ng nas quais todos os números mudam de posição? Este problema pode ser naturalmente resolvido pela estratégia da função característica. O conjunto universo é o conjunto das permutações de f1; :::; ng, o conjunto objetivo é constituido pelas permutações de f1; :::; ng que não possuem ponto xo e a função característica pode ser de nida por 1; se p (j) = j 8j f1; :::; ng ; (p) = 0; caso contrário. O algoritmo de contagem: Entrada: U = fp 1 ; :::; p n! g : U! f0; 1g ; se p (j) = j 8j f1; :::; ng então (x) = 1, senão (x) = 0; R = 0; De k = 1 até k = n faça: [Se (p k ) = 1 então R = R + 1, senão R = R Retorne R; Saída: R: Para testar um programa do algoritmo, podemos comparar seus resultados com aqueles obtidos por enumeração explícita das permutações caóticas, nos casos de pequenos valores de n: R (1) = 0, R () = 1, R (3) =, R () = 9. No Apêndice A.3 apresentamos um código de programação no Mathemática veri cado por esse teste.. Um problema com ladrilhos Problema: Dado n N, determine o número de maneiras de dispor ladrilhos dos tipos 1 1 e 1 numa faixa de comprimento 1 n. Vamos aplicar a estratégia da função característica. 3 O conjunto universo é o conjunto das sequências de ladrilhos dos tipos 1 1 e 1 com número de termos variando de dn=e a n, o conjunto objetivo é constituido pelas sequências cujo comprimento é igual a n e a função característica é dada por ((a 1 ; :::; a k )) = 1; se a1 + ::: + a k = n; 0; caso contrário; k = dn=e ; :::; n: O número variável de termos da sequência di culta a programação, por isso particionamos o conjunto universo e o subconjunto objetivo em subconjuntos nos quais as sequências possuem número xo de termos: para k variando de dn=e a n, U k é o conjunto das sequências de k ladrilhos dos tipos 1 1 e 1, E k é o subconjunto das sequências de U k cujo comprimento é igual a n e a correspondente função característica é dada por 1; se a1 + ::: + a k ((a 1 ; :::; a k )) = k = n; 0; caso contrário. O algoritmo de contagem: 3 Para uma resolução usando recorrência, vide []. Para x R, a notação dxe indica o menor inteiro maior ou igual a x. 5
6 Entrada: n; De k = 1 até k = n faça: U k = fs 1 ; :::; s kg ( lista das sequências com k termos iguais a 1 ou *); De k = 1 até k = n faça: R = 0; k : U k! f0; 1g ; se P k i=1 s (i) = 1 então k (s) = 1 senão k (s) = 0; De k = 1 até k = n faça: De j = 1 até j = k faça: [Se k (s j ) = 1 então R = R + 1, senão R = R; Retorne R; Retorne R; Saída: R Uma das di culdades para programar este algoritmo é a criação do conjunto universo e sua enumeração. Isso pode ser realizado considerando que o número de sequências com k termos iguais a 1 ou é igual a quantidade de números que se escrevem na base com k dígitos! Utilizamos essa ideia para programar o algoritmo no Mathematica, conforme Apêndice A.. 5 Conclusão De nimos e apresentamos exemplos de resoluções computacionais de problemas de contagem. Defendemos também a tese de que o método pode repercutir positivamente no ensino do tema tanto no nível da Educação Básica quanto no nível do Ensino Superior. Naturalmente, são necessárias pesquisas de campo para compreendermos como o método deve ser ensinado para garantirmos um melhor aproveitamento, bem como para comprovar nossas espectativas. Esperamos que este artigo motive trabalhos nessa direção. A resolução computacional não elimina a necessidade de compreendemos e de criarmos estratégias de resolução para os problemas de contagem, embora nos permita contornar a necessidade de usar o Princípio Multiplicativo. Na estratégia da função característica, a interpretação do problema e sua resolução se resumem a escolher o conjunto universo e de nir a função característica, o que signi ca deduzir as expressões matemáticas das propriedades que caracterizam o conjunto objetivo. Essa estratégia funciona como uma estrutura que organiza e orienta o pensamento, reduzindo a sensação comum de não sabermos o que fazer, mas não se aplica naturalmente a todos os problema (e.g., o problema de contar anagramas da seção 3.1). Aqui, não discutimos a questão dos recursos computacionais requeridos para o computador executar o Algoritmo de Contagem programado em tempo hábil. Na prática esse ponto é importante porque muitos problemas de contagem que podem ser teoricamente resolvidos pela estratégia da função característica requerem um volume tão grande de memória ou uma quantidade tão grande cálculos que não pode ser executado pelos computadores atuais em tempo hábil. No ensino de Combinatória, a proposta constitui aplicação profícua do computador, além de ser uma alternativa notável às práticas do ensino tradicional vigentes [1, p.5]; como bônus, ela oferece uma ilustração adequada do que é computação cientí ca, um elemento importante da ciência e tecnologia atuais com potencial de despertar o interesse de muitos estudantes. A proposta pode reduzir signi cativamente as di culdades de aprendizagem constatadas na Educação Básica e no Ensino Superior [], compensando o trabalho e o tempo dispendidos para discutir e praticar o método. En m, esse tipo de abordagem para o ensino de Matemática é uma tendência em desenvolvimento [] [3] e que não pode ser ignorada: Graças à abundância de computadores de baixo custo, agora temos a oportunidade de melhorar o ensino de matemática em uma frente vastamente mais ampla e interessante, que irá melhorar a importância da matemática aprendida pelos alunos. Por exemplo, com a ajuda do método de Monte Carlo, e programas como o Mathematica, a Probabilidade pode assumir um lugar proeminente na Matemática Escolar. [Nesse caso,] eliminamos a opressora di culdade com os
7 cálculos combinatórios. [Além disso,] medidas importantes relacionadas com a distribuição normal (de Gauss) e outras distribuições exponenciais [também] podem ser abordadas pelo método de Monte Carlo, tornando essa parte da matemática não mais complicada do que [mera] contagem. J.J. Uhl, D. Woods [8]. References [1] M. de C. Borba, M.G. Penteado: Informática e Educação Matemática. Belo Horizonte: Autêntica Editora, 01. [] F. Le Calvez, H. Giroire, G. Tisseau: Design of a Learning Environment in Combinatorics based on Problem Solving: Modeling Activities, Problems and Errors. International Journal of Arti cial Intelligence in Education Vol.18, No.1 (008): [3] F. Le Calvez, H. Giroire: Solving Combinatorics Problems: from the Design of a Solving Method to a Training System. In: L. Gómez Chova, D. Martí Belenguer, I. Candel Torres (eds): International Conference of Education, Research and Innovation ICERI, 008, IATED. [] Maurício Fabbri: Brincando com Ladrilhos. Revista do Professor de Matemática, no.8, pp.11-17, 01. [5] A. C. de O. Morgado, et.al.: Análise Combinatória e Probabilidade. Rio de Janeiro: SBM, 005. [] L. S. Fassarella (009): A resposta é plausível? Comentários baseados em um cálculo de probabilidades. Revista do Professor de Matemática no.70: p.1-5. [7] P. R. Halmos: The Heart of Mathematics. The American Mathematical Monthly, Vol. 87, No. 7 (1980): pp [8] J.J. Uhl, D. Woods: The crisis we face and how to try to deal with it. In: S. Li, D. Wang, J.-Z. Zhang: Symbolic Computation and Education. World Scienti c, 007: pp
8 A Códigos Para designar comentários no programa são usados parênteses e asteriscos: (*...*). A.1 Um problema de anagramas... A. Uma problema com solução na forma de recorrência (* Programa para cálculo do número de modos de dispor parênteses na soma x 1 + ::: + x n *) n= A=Table[1,{i,1,n}] For[k=, k n, k++, A[[k]] = P k 1 i=1 A[[i]]*A[[k-i]] ] Print[ A[[n]] ] A.3 O problema das permutações caóticas (* Programa para cálculo do número de permutações caóticas de {1,...,n} *) n = U = Permute[Table[k, {k, 1, n}], SymmetricGroup[n]]; ny [J_ ] = (If[ J[[i]] = i, 1, 0]); i=1 Nc = 0; For[k = 1, k <= n!, k++, If[[U[[k]]] == 1, Nc = Nc + 1, Nc = Nc]] Print[ Nc ] A. Um problema com ladrilhos... 8
Resolução Computacional de Problemas de Probabilidade
Trabalho apresentado no III CMAC - SE, Vitória-ES, 2015. Proceeding Series of the Brazilian Society of Computational and Applied Mathematics Resolução Computacional de Problemas de Probabilidade Lúcio
Leia maisResolução Computacional de Problemas Matemáticos
Resolução Computacional de Problemas Matemáticos Semana da Matemática 2016 CEUNES/UFES Novembro de 2016 Lúcio S. Fassarella (DMA & PPGEEB/UFES) & Géssica Martins (PPGEEB/UFES) 0 Preâmbulo Este minicurso
Leia maisProblema de Combinatória. Prof. Lúcio Fassarella
Problema de Combinatória Prof. Lúcio Fassarella DM A /CEUNES/UFES Problema: Alguém escreve n cartas para destinatários diferentes e escreve os respectivos endereços em n envelopes. Quantas maneiras diferentes
Leia maisResolução Computacional de Problemas de Probabilidade
Resolução Computacional de Problemas de Probabilidade Lúcio Fassarella Universidade Federal do Espírito Santo lucio.fassarella@ufes.br 26 de maio de 2015 Lúcio Fassarella (UFES) Probabilidade 26 de maio
Leia maisProblemas de Contagem Problemas de contagem elementares
Problemas de Contagem Problemas de contagem elementares Lúcio. Fassarella MA/CEUNE/UFE Outubro de 2014 escrição: Aqui apresentamos alguns problemas de contagem e algoritmos-solução. 2 Um problema com anagramas
Leia maisAnálise de Algoritmos Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br
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 maisNotas sobre primitivas
Matemática - 8/9 - Notas sobre primitivas 57 Notas sobre primitivas Seja f uma função real de variável real de nida num intervalo real I: Chama-se primitiva de f no intervalo I a uma função F cuja derivada
Leia maisOficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini
Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Apresentação do Professor Professor: José Carlos Perini E-mail: jose.perini@metrocamp.edu.br Blog: http://profperini.com Formação
Leia maisOficina de Python Prof. Me. José Carlos Perini
Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação
Leia maisAlgoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas
Algoritmos Programação de Computadores Comparando Algoritmos Um algoritmo é um procedimento de passos para cálculos. Este procedimento é composto de instruções que definem uma função Até o momento, vimos
Leia maisUniversidade Federal do Espírito Santo Prova de Álgebra II Prof. Lúcio Fassarella DMA/CEUNES/UFES Data: 07/05/2015
Universidade Federal do Espírito Santo Prova de Álgebra II Prof. Lúcio Fassarella DMA/CEUNES/UFES Data: 07/05/2015 Aluno: Matrícula. Nota: : :.Observações: I A prova tem duração de 100 min; não é permitido
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 maisEspaços vectoriais reais
ALGA - 00/0 - Espaços Vectoriais 49 Introdução Espaços vectoriais reais O que é que têm em comum o conjunto dos pares ordenados de números reais, o conjunto dos vectores livres no espaço, o conjunto das
Leia maisOficina de Python Prof. Me. José Carlos Perini
Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação
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 maisReferências e materiais complementares desse tópico
Notas de aula: Análise de Algoritmos Centro de Matemática, Computação e Cognição Universidade Federal do ABC Profa. Carla Negri Lintzmayer Conceitos matemáticos e técnicas de prova (Última atualização:
Leia maisANÁLISE DE COMPLEXIDADE DOS ALGORITMOS
1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)
Leia maisMA14 - Aritmética Unidade 22 Resumo. Aritmética das Classes Residuais
MA14 - Aritmética Unidade 22 Resumo Aritmética das Classes Residuais Abramo Hefez PROFMAT - SBM Aviso Este material é apenas um resumo de parte do conteúdo da disciplina e o seu estudo não garante o domínio
Leia maisDesenho e Análise de Algoritmos CC /2018. Folha 1 - Revisão: Escrita de algoritmos em pseudo-código e verificação de correção
Departamento de Ciência de Computadores FCUP Desenho e Análise de Algoritmos CC2001 2017/2018 Folha 1 - Revisão: Escrita de algoritmos em pseudo-código e verificação de correção Descrição da linguagem
Leia maisANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa
ANÁLISE DE ALGORITMOS: PARTE 1 Prof. André Backes Algoritmos 2 Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa Precisamos escrever o seu algoritmo Um algoritmo
Leia mais1) Seja o conjunto A = (0;1). Quantas relações binárias distintas podem ser definidas sobre o conjunto A?
RESUMO A relação binária é uma relação entre dois elementos, sendo um conjunto de pares ordenados. As relações binárias são comuns em muitas áreas da matemática. Um par ordenado consiste de dois termos,
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 maisProbabilidade combinatória
Capítulo 5 Probabilidade combinatória 51 Eventos e probabilidades A teoria da probabilidade é uma das áreas mais importantes da matemática do ponto de vista de aplicações Neste livro, não tentamos introduzir
Leia maisALGA - Eng.Civil e Eng.Topográ ca-ise-2011/2012- Determinantes 32. Determinantes
ALGA - Eng.Civil e Eng.Topográ ca-ise-0/0- Determinantes Permutações Determinantes Seja n N. Uma permutação p (p ; p ; : : : ; p n ) dos elementos do conjunto f; ; ; ng é um arranjo dos n números em alguma
Leia maisAnálise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Mestrado em Ciência da Computação Prof. Dr. Aparecido Nilceu Marana Faculdade de Ciências I think the design of efficient algorithms is somehow the core of computer science.
Leia maisUm Estudo Sobre a Enuberabilidade do Conjunto Q dos Números Racionais
UNIVERSIDADE FEDERAL DE RONDÔNIA CENTRO DE CIÊNCIAS EXATAS E DA TERRA DEPARTAMENTO DE MATEMÁTICA Relatório de Pesquisa Um Estudo Sobre a Enuberabilidade do Conjunto Q dos Números Racionais Laís Ribeiro
Leia maisAula 11: Laços e exercícios
Aula 11: Laços e exercícios Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Manipulação de laços Exercício 2 /
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 maisIntrodução a programação Comandos de repetição
Instituto Federal de Minas Gerais Campus Ponte Nova Introdução a programação Comandos de repetição Professor: Saulo Henrique Cabral Silva Laços de repetição 2 Vamos começar com um exercício Imprimir os
Leia maisMatemática II /06 - Determinantes 25. Determinantes
Matemática II - 00/0 - Determinantes Permutações Determinantes Seja n N. Uma permutação p (p ; p ; : : : ; p n ) do conjunto f; ; ; ng é um arranjo dos n números em alguma ordem, sem repetições ou omissões.
Leia maisPROBABILIDADE. Prof. Patricia Caldana
PROBABILIDADE Prof. Patricia Caldana Estudamos probabilidade com a intenção de prevermos as possibilidades de ocorrência de uma determinada situação ou fato. Para determinarmos a razão de probabilidade,
Leia maisIntrodução ao Curso. Área de Teoria DCC/UFMG 2019/01. Introdução à Lógica Computacional Introdução ao Curso Área de Teoria DCC/UFMG /01 1 / 22
Introdução ao Curso Área de Teoria DCC/UFMG Introdução à Lógica Computacional 2019/01 Introdução à Lógica Computacional Introdução ao Curso Área de Teoria DCC/UFMG - 2019/01 1 / 22 Introdução: O que é
Leia maisAula 1: Introdução ao curso
Aula 1: Introdução ao curso MCTA027-17 - Teoria dos Grafos Profa. Carla Negri Lintzmayer carla.negri@ufabc.edu.br Centro de Matemática, Computação e Cognição Universidade Federal do ABC 1 Grafos Grafos
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 maisLINGUAGEM ALGORÍTMICA
LINGUAGEM ALGORÍTMICA Adriano Mauro Cansian André Proto UNESP - São José do Rio Preto Linguagem Computacional Introdução! Para uma melhor padronização de nosso estudos, vamos agora definir uma linguagem
Leia mais15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -
Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções 1 Um algoritmo pode ser visto como uma sequência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema.
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP 18 de agosto de 2017 Conteúdo programático Introdução (4 horas/aula) Notação
Leia mais> Princípios de Contagem e Enumeração Computacional 0/19
Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações Combinações > Princípios de Contagem e Enumeração Computacional 0/19 Permutações Utilizamos P(n, r) para denotar o número de sequências
Leia maisNotas sobre primitivas
Análise Matemática I - Engenharia Topográ ca - 9/- Notas sobre primitivas Notas sobre primitivas Seja f uma função real de variável real de nida num intervalo real I: Chama-se primitiva de f no intervalo
Leia maisAKS: um algoritmo para identificar números primos
AKS: um algoritmo para identificar números primos IM-UFBA 08 de novembro de 2016 Índice 1 Preliminares 2 3 4 5 Introdução Números primos Comprovar a primalidade de um número natural significa comprovar
Leia mais> Princípios de Contagem e Enumeração Computacional 1/10
Princípios de Contagem e Enumeração Computacional > Princípios de Contagem e Enumeração Computacional 1/10 De quantas maneiras podemos selecionar um subconjunto de r objetos de um conjunto de n objetos?
Leia maisTeoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos e Algoritmos Preparado a partir do texto: Rangel, Socorro.
Leia maisJuliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação
Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computação
Leia maisMATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26
AULA 26 MATRIZES - PARTE 2 26. Mais exemplos Nesta aula, veremos mais dois algoritmos envolvendo matrizes. O primeiro deles calcula a matriz resultante da multiplicação de duas matrizes e utiliza três
Leia maisConhecer um pouco mais de perto as propriedades do grupo das permutações de nível.
Aula 07 MAIS SOBRE O GRUPO SIMÉTRICO META Conhecer um pouco mais de perto as propriedades do grupo das permutações de nível. OBJETIVOS Reconhecer elementos de Reconhecer os subgrupos e de Aplicar propriedades
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 maisAULA 24. Algoritmos p.856/905
AULA 24 Algoritmos p.856/905 Máximo divisor comum CLRS 31.1 e 31.2 Algoritmos p.857/905 Divisibilidade Suponha que a, b e d são números inteiros. Dizemos que d divide a se a = k d para algum número inteiro
Leia maisUniversidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Combinatória
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: http://jeiks.net E-mail: jacsonrcsilva@gmail.com
Leia maisExercícios Repetição
Curso de Engenharia de Controle e Automação Disciplina: Informática para a Automação Professor: Marcelo Cendron Exercícios Repetição 1.1 8.3 Exercícios 1. Faça um programa utilizando o comando while, que
Leia maisLINGUAGEM C: COMANDOS DE REPETIÇÃO
LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições
Leia maisBCC 701 Programação de Computadores I
BCC 701 Programação de Computadores I Professor: Anderson Almeida Ferreira anderson.ferreira@gmail.com http://www.decom.ufop.br/anderson Sala: 44 DECOM - UFOP Programa da disciplina Ementa: Introdução
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 maisCiência da Computação
Algoritmos e Programação Informática II Ciência da Computação Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian 1 Sumário Estruturas de Controle de Fluxo. Ou: Estruturas de Decisão. Decide qual
Leia maisUNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 4 a Lista de Exercícios Gabarito de algumas questões.
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO MATEMÁTICA COMBINATÓRIA 4 a Lista de Exercícios Gabarito de algumas questões. Este gabarito foi feito direto no computador
Leia maisRumo Curso Pré Vestibular Assistencial - RCPVA Disciplina: Matemática Professor: Vinícius Nicolau 19 de Setembro de 2014
Sumário 1 Análise Combinatória 1 1.1 Questões de Vestibular.............................. 1 1.1.1 IME-RJ, Adaptada............................ 1 1.1.2 ESPM-SP................................. 2 1.1.3 Mackenzie-SP,
Leia maisESTRUTURAS DE REPETIÇÃO - PARTE 1
AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a
Leia mais5. SEQUÊNCIAS E SOMAS
Curso: Ciência da Computação Disciplina: Matemática Discreta 5. SEQUÊNCIAS E SOMAS Prof.: Marcelo Maraschin de Souza Marcelo.maraschin@ifsc.edu.br Sejam as sequências: 1. (36, 38, 40, 42,, 70); 2. (jan.,
Leia maisLinguagem de Programação I Prof. Tiago Eugenio de Melo.
Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a
Leia maisVariáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.
Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre@ifc-araquari.edu.br marcoandre@gmail.com marcoandre.googlepages.com Algoritmos é a base Primeiro programa Este programa possui apenas uma
Leia maisEstruturas de Dados Algoritmos
Estruturas de Dados Algoritmos Prof. Eduardo Alchieri Algoritmos (definição) Sequência finita de instruções para executar uma tarefa Bem definidas e não ambíguas Executáveis com uma quantidade de esforço
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 maisLógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo
Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo Este guia irá lhe ajudar a entender o laço de repetição
Leia maisCombinatória I. Sumário Introdução Princípios Básicos... 2
11 Combinatória I Sumário 11.1 Introdução....................... 2 11.2 Princípios Básicos................... 2 1 Unidade 11 Introdução 11.1 Introdução Combinatória é um vasto e importante campo da matemática
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 maisa complexidade no desempenho de algoritmos
capítulo 1 introdução Os algoritmos são o cerne da computação. Este capítulo introdutório procura ressaltar a importância da complexidade e dos métodos de projeto e análise de algoritmos. Partindo da ideia
Leia maisTeoria do Controle: fundamentos teóricos e técnicas numéricas
Teoria do Controle: fundamentos teóricos e técnicas numéricas Identificação: Grande área do CNPq: Ciências Exatas e da Terra Área do CNPq: Matemática Título do Projeto: Teoria do Controle de Sistemas Quânticos
Leia maisCapítulo 2: Procedimentos e algoritmos
Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo
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 maisPrincípio da Multiplicação Gerando todas as palavras de um alfabeto. > Princípios de Contagem e Enumeração Computacional 0/18
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
Leia maisCaminhos de Amizades pelo Facebook:
Caminhos de Amizades pelo Facebook: Dualidade Computacional entre Curto e Longo Introdução a ECI Aula 2 Daniel R. Figueiredo LAND PESC/COPPE/UFRJ Problemas da Computação Objetivo: como resolver problemas
Leia maisnotas de aula versão 1 - Jerônimo C. Pellegrini notas de aula versão 1 11 de fevereiro de 2011
Introdução à Programação notas de aula versão 1 11 de fevereiro de 2011 1 Variáveis, entrada e saída Suponha que queiramos escrever um programa que calcule a área de um retânglo. É algo trivial e pode
Leia maisAula 2: Algoritmos: Intuição
Aula 2: Algoritmos: Intuição Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Intuição Programação de Computadores IV 1 / 27 Agenda 1 Revisão
Leia maisCaminhos de Amizades pelo Facebook: Dualidade Computacional entre Curto e Longo
Caminhos de Amizades pelo Facebook: Dualidade Computacional entre Curto e Longo ieci 2019 Daniel Ratton Figueiredo PESC/COPPE/UFRJ Problemas da Computação Objetivo: como resolver problemas ᴏ calcular zeros
Leia maisMaterial Teórico - Módulo Números Naturais: Contagem, Divisibilidade e o Teorema da Divisão Euclidiana
Material Teórico - Módulo Números Naturais: Contagem, Divisibilidade e o Teorema da Divisão Euclidiana Números Naturais e Problemas de Contagem Parte Oitavo Ano Autor: Prof Ulisses Lima Parente Revisor:
Leia maisMódulo de Princípios Básicos de Contagem. Segundo ano
Módulo de Princípios Básicos de Contagem Permutação simples Segundo ano Permutação Simples 1 Exercícios Introdutórios Exercício 1. De quantas formas se pode dispor quatro pessoas em fila indiana? Exercício
Leia maisBCC 701 Programação de Computadores I
BCC 701 Programação de Computadores I Professor: Anderson Almeida Ferreira anderson.decom@gmail.com http://www.decom.ufop.br/anderson Sala: COM 10 DECOM - UFOP Programa da disciplina Ementa: Conceitos
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes marinagomes@unipampa.edu.br 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a
Leia mais2 Resolução Computacional de Problemas de Probabilidade 6
Resolução Computacional de Problemas de Probabilidade Lucio S. Fassarella DMA/CEUNES/UFES 26 de maio de 2015 Resumo Notas de aula sobre o uso do computador na resolução de problemas de probabilidade. Aqui,
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Introdução Apresentação Professor Professor Ariel Dias Apresentação Disciplina O que veremos? www.arieldias.com BlackBoard Apresentação
Leia maisAlgoritmos e Programação - Engenharia da Computação -
Algoritmos e Programação - Engenharia da Computação - Prof. Alessandro Zimmer Pseudo Linguagem de Programação - PORTUGOL - Pseudo-Linguagem Linguagem de Programação? Notação formal servindo para: - Expressar
Leia maisPatrícia de Siqueira Ramos. UNIFAL-MG, campus Varginha. 21 de Março de 2018
Introdução UNIFAL-MG, campus Varginha 21 de Março de 2018 Não existe, em geral, uma única solução para um problema Algumas soluções são melhores do que outras, sob algum critério Alguns problemas são casos
Leia maisAnálise de Complexidade de Algoritmos. mario alexandre gazziro
Análise de Complexidade de Algoritmos mario alexandre gazziro Definição A complexidade de um algoritmo consiste na quantidade de esforço computacional necessária para sua execução. Esse esforço é expresso
Leia maisContagem 2: permutação e resolução de exercícios de contagem. - Assuntos a serem abordados: Contagem permutação e resolução de exercícios de contagem
Contagem 2: permutação e resolução de exercícios de contagem - Assuntos a serem abordados: Contagem permutação e resolução de exercícios de contagem - Textos: Apresentado neste roteiro da aula Apostila
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 maisAULA 13. Algoritmos p.526/582
AULA 13 Algoritmos p.526/582 Ordenação em tempo linear CLRS 8.2 8.3 Algoritmos p.527/582 Ordenação por contagem Recebe vetores A[1.. n] e B[1.. n] e devolve no vetor B[1.. n] os elementos de A[1.. n] em
Leia maisAlgoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido
Leia maisNotas sobre primitivas
MTDI I - 007/08 - Notas sobre primitivas Notas sobre primitivas Seja f uma função real de variável real de nida num intervalo real I: Chama-se primitiva de f no intervalo I a uma função F cuja derivada
Leia maisMC102 Aula 27 Recursão II
MC102 Aula 27 Recursão II Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Relembrando 2 Cálculo de Potências 3 Torres de Hanoi 4 Recursão e Backtracking 5 Exercício (Instituto
Leia maisAnálise de complexidade
Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura
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/17 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos
Leia maisAula 3: Algoritmos: Formalização e Construção
Aula 3: Algoritmos: Formalização e Construção Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Formalização e Pseudo-Código Programação de
Leia maisSULIMAR GOMES SILVA INTRODUÇÃO À PROBABILIDADE
SULIMAR GOMES SILVA INTRODUÇÃO À PROBABILIDADE Trabalho apresentado ao curso de Formação Continuada da Fundação CECIERJ - Consórcio CEDERJ. Orientadora: Danubia de Araujo Machado (Tutora) Grupo 2 Série:
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 5 Estruturas de Repetição Profa. Marina Gomes marinagomes@unipampa.edu.br 26/04/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje Estrutura de repetição Comando for
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 mais