300 likes | 402 Vues
BCC 101 – Matemática Discreta I. Recursão / Indução. Recursão / Indução. Método u sada para resolver uma classe de problemas , em que cada instância tem um tamanho (n ∈ N ) Construa a solução para instâncias do problema de tamanho 0
E N D
BCC101 - Matemática Discreta - DECOM/UFOP BCC 101 – Matemática Discreta I Recursão / Indução
BCC101 - Matemática Discreta - DECOM/UFOP Recursão/Indução Métodousadapara resolver umaclasse de problemas,emquecadainstância tem um tamanho(n ∈ N) • Construa a soluçãoparainstâncias do problema de tamanho 0 • Supondoconhecida a solução do problemaparainstâncias de tamanhon, sendonarbitrário, construa a soluçãoparainstâncias de tamanho (n+1) base da recursão passorecursivo
BCC101 - Matemática Discreta - DECOM/UFOP NúmerosNaturais • Conjunto dos númerosnaturais N = {1,2,3, …} podeserdefinidorecursivamentecomo 0 ∈ N n ∈ N → (n+1) ∈ N • Gramática: N -> 0 | suc N • Tipo de dado (em Haskell) data Nat = Zero | Suc Nat
Fatorial • Fatorial: n! = 1x2x…x(n-1)xn 0!= 1 (base) n!= n ·(n -1)! (recursão) • EX: 5! recursão = 5 · 4! = 5 · 4 · 3! = 5 · 4 · 3 · 2! = 5 · 4 · 3 · 2 · 1! = 5 · 4 · 3 · 2 · 1 · 0! = 5 · 4 · 3 · 2 · 1 · 1 base
BCC101 - Matemática Discreta - DECOM/UFOP Exercícios • Definarecursivamenteosconjuntos: • Pares = {0,2,4,…} • O conjuntopotência de A: P (A ). • O conjuntode todososbitstringsBs • O conjuntode bitstringspalindromosPal • O conjunto de todas as listas de valores de um dado tipo A
BCC101 - Matemática Discreta - DECOM/UFOP Sequências • Sequência de potências de 2: an = 2n, n≥0 podeserdefinidarecursivamentecomo: a0 = 1 an = 2 an-1 n>0 • Sequência: 3 0 3 0 3 0 … podeserdefinidarecursivamentecomo: a0= 3 a1 = 0 an= an-2 n>1
Fibonacci • Fibonacci fib 0 = 0 fib 1 = 1 fib n = fib (n -1) + fib (n -2) EssealgoritmoéO(2n ) porqueaopassar de nparan-1 efetuamos 2 chamadasrecursivas da função, e cadaumausa, porsuavez, duasoutraschamadasrecursivas, e assimpordiante.
BCC101 - Matemática Discreta - DECOM/UFOP Exercícios • Considere a definiçãorecursiva: f(0) = 1 f(n+1) = 3 f(n) n>0 • Determine f(1), f(2), f(3), f(4) • Encontreumafórmuladiretapara f(n) • Definarecursivamente as sequências: • an = 3n+2 n≥0 • 1 -1 1 -1 1 … • an = n2
CoeficientesBinomiais (n,k) • Coeficientesbinomiaisocorrememdiversasaplicações: • Combinatória/ProbabilidadeC (n,k) =número de maneiras de escolherk elementos de um conjunto com n elementos • Algebra: C (n,k) = coeficiente do k esimotermonaexpansãobinômio de graun: (x + y )n Notação usada comumente:
Coeficientes Binomiais (n,k) Amaneiramaiseficiente de computartodososC (n,k) até um determinadoné via o triângulo de Pascal. O triângulo de Pascal éconstruídocolocando 1 no topo (inicialização) e todoelementoseguinteédefinidorecursivamentecomo a soma dos númerosàdireita e àesquerdadessenúmero, nalinha anterior. Se talnúmeronãoexiste, éconsiderado 0.
combinação nk e Triângulo Pascal 1 1 1 1 2 1
combinação nk e Triângulo Pascal 1 1 1 1 2 1 1 3 3 1
combinação nk e Triângulo Pascal 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
combinação nk e Triângulo Pascal 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
combinação nk e Triângulo Pascal 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1
combinação nk e Triângulo Pascal n = linha 0 1 2 3 4 5 6 0 k =coluna diagonal 1 2 3 4 5 6 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 Q: FórmularecursivaparaC (n,k)? Ω
Coeficientes Binomiais (n,k) Resposta: Use o triângulo de Pascal. Base: O topo do triânguloé 1. Portanto, C (0,0) = 1. Se falta um número, eleéconsiderado 0. Issodáorigem a C (n,k) = 0 se k < 0, ouk > n. Recursão:Cadavalor éa soma dos númerosàdireita e àesquerdanalinha anterior: C (n,k) = C (n -1,k-1) + C (n -1,k )
Coeficientes Binomiais (n,k) Resumindo:
Máximo Divisor Comum - mdc O algoritmo de Euclidesusa o fato: mdc(x,y) = mdc(y, xmod y) supomosaquique x > 0
BCC101 - Matemática Discreta - DECOM/UFOP Exercícios • Definarecursivamente: • an , a ∈ R, n ∈ N
BCC101 - Matemática Discreta - DECOM/UFOP Tamanho do problema • A generalizaçãoapropriadanemsempreéóbvia. • Exemplo: problemarelativo a um tabuleiro de xadrez com 64 quadrados. Como esseproblemapodesergeneralizado? • Uma classe de problemas com instâncias de tamanho n, talqueumainstânciaé n = 64 • Uma classe de problemasemqueumainstânciaé um tabuleiro de tamanhon×n. O tamanho da instânciaé n; o problema original éumainstância de tamanho n = 8 • Restringir a classe a problemasas casosemque o tamanho do tabuleiroé 2n. O problema original éumainstância de tamanho n = 3
BCC101 - Matemática Discreta - DECOM/UFOP Triominós Considere um tabuleiro com tamanho 2n x 2nno qualexatamente um quadradoestácoberto. um triominó de formato Léfeito de 3 quadrados: Quantostriominósde formatoL sãonecessáriosparacobrirosquadradosrestantes,semquetriominós se sobreponham.
BCC101 - Matemática Discreta - DECOM/UFOP Triominós - soluçãopara23 x 23
BCC101 - Matemática Discreta - DECOM/UFOP Triominós • Caso base (n=0): • O tabuleiro tem dimensão 20x20= 1x1, istoé, exatamente 1 quadrado, quejáestácoberto. Portanto, sãonecessários 0 triominósparacobrirosquadradosrestantes: trio(0) = 0 • Passoindutivo: • Considere um tabuleiro de dimensões 2n+1x2n+1 • Suponhaqueépossívelcobrirqqtabuleiro de dimensões 2nx2n com trio(n)triominós • Devemosmostrarcomoexploraressahipóteseparaobter a soluçãopara o caso2n+1x2n+1
BCC101 - Matemática Discreta - DECOM/UFOP Triominós • Um tabuleiro 2n+1x2n+1podesersubdivididoem 4 tabuleiros 2nx2n, traçando-se umalinha horizontal e uma vertical que se cruzam no meio. • Emumadesses 4 tabuleiros, há um quadradoquejáestácoberto. Pelanossahipótese, osdemaisquadradosdessetabuleiropodemsercobertos com k triominós. • Nenhum dos 3 outros tabuleiros 2nx2n tem um quadradocoberto. Como aplicar a hipóteseaos 3 outros tabuleiros? • A idéiaécolocar um triominónajunçãodesses 3
BCC101 - Matemática Discreta - DECOM/UFOP Triominós trio(0) = 0 trio(n+1) = 4 trio(n) +1 Agora a hipótesepodeseraplicadaparacobrirosquadradosrestantes de cadauma dos 3 outros subtabuleiros. Entãotrio(n+1) = 4 trio(n) +1 (n>0).
ExercícioTorres de Hanoi(Edouard Lucas - 1883) Um templo da cidade de Hanoi tem 3 torres de diamante, emuma das quaisforamempilhadosndiscos de ouro, de maneiraqueos discos diminuem de tamanho da base para o topo da torre. Osmonges do templotrabalhamsemcessarparatransferiros discos da torreemqueforaminicialmentecolocadosparauma das outrasduastorres --- mas nunca um disco de maiorraiopodesercolocadosobre outro de raiomenor. Encontreumadefiniçãorecursivapara o número de movimentosde discos quesãonecessáriosparatransferir n discos da torre A para a torre C, usando a torre B.