SCC-210. Algoritmos Avançados Capítulo 6

Documentos relacionados
SCC-211 Lab. Algoritmos Avançados

SCC-210 Algoritmos Avançados

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Soma de Elementos em Linhas, Colunas e Diagonais. Segundo Ano do Ensino Médio

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Soma de Elementos em Linhas, Colunas e Diagonais. Segundo Ano do Ensino Médio

XIX Semana Olímpica de Matemática. Nível U. Algumas Técnicas com Funções Geratrizes. Davi Lopes

Análise Combinatória (Regras de Contagem) 2 Princípio Fundamental da Multiplicação

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Desenvolvimento Multinomial. Segundo Ano do Ensino Médio

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação 2011

Prova Parcial 1 Matemática Discreta para Computação Aluno(a): Data: 18/12/2012

3. Seja C o conjunto dos números complexos. Defina a soma em C por

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Séquências e Séries Infinitas de Termos Constantes

Métodos em contagens Bijeções, Contagens Duplas, Recorrências e Funções Geratrizes

BINÔMIO DE NEWTON. O desenvolvimento da expressão 2. a b é simples, pois exige somente quatro multiplicações e uma soma:

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos

ÁLGEBRA. Licenciatura em Engenharia Electrotécnica e de Computadores LEEC Ano lectivo de 2002/2003

S E Q U Ê N C I A S E L I M I T E S. Prof. Benito Frazão Pires. Uma sequência é uma lista ordenada de números

AULA Subespaço, Base e Dimensão Subespaço.

CUFSA - FAFIL. Análise Combinatória (Resumo Teórico)

Introdução. Objetivo da Ciência da Computação. Regra Geral. Nenhuma implementação excelente salva um Algoritmo inadequado.

Um estudo das permutações caóticas

Orientação de trabalho:

DILMAR RICARDO MATEMÁTICA. 1ª Edição DEZ 2012

1.4 Determinantes. determinante é igual ao produto dos elementos da diagonal principal menos o produto dos elementos da diagonal secundária.

Introdução. Objetivo da Ciência da Computação. Regra Geral. Problema Algoritmo Implementação. Projeto e Análise de. Algoritmo 3

Complexidade de Algoritmos Aula 5

Nome do aluno: N.º: Para responder aos itens de escolha múltipla, não apresente cálculos nem justificações e escreva, na folha de respostas:

Problemas de Contagem

Sucessão ou Sequência. Sucessão ou seqüência é todo conjunto que consideramos os elementos dispostos em certa ordem. janeiro,fevereiro,...

Sequências, PA e PG material teórico

Induzindo a um bom entendimento do Princípio da Indução Finita

Introdução à Computação

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

Provas de Matemática Elementar - EAD. Período

Universidade Federal Fluminense ICEx Volta Redonda Introdução a Matemática Superior Professora: Marina Sequeiros

1- Resolução de Sistemas Lineares.

UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE CIÊNCIAS DEPARTAMENTO DE MATEMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM MATEMÁTICA EM REDE NACIONAL

1 Amintas engenharia

Complexidade de Algoritmos

Fontes Bibliográficas. Estruturas de Dados Aula 14: Recursão. Introdução. Introdução (cont.)

ANÁLISE DE COMPLEXIDADE DE ALGORITMOS

Stela Adami Vayego DEST/UFPR

δ de L. Analogamente, sendo

Bases e dimensão. Roberto Imbuzeiro Oliveira. 22 de Março de 2012

n ) uma amostra aleatória da variável aleatória X.

Fundamentos de Análise Matemática Profª Ana Paula. Números reais

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

Dessa forma, concluímos que n deve ser ímpar e, como 120 é par, então essa sequência não possui termo central.

Representação de Números em Ponto Flutuante

Sumário. 2 Índice Remissivo 19

Stela Adami Vayego DEST/UFPR

Distribuições Amostrais

Números primos, números compostos e o Teorema Fundamental da Aritmética

Matemática. Binômio de Newton. Professor Dudan.

Solução Comentada Prova de Matemática

ESCOLA SUPERIOR DE TECNOLOGIA DE SETÚBAL DEPARTAMENTO DE MATEMÁTICA MATEMÁTICA DISCRETA Curso: LEI. Correção do exame da Época Normal - A 2006/2007

Exercícios de Aprofundamento Matemática Progressão Aritmética e Geométrica

Distribuições Amostrais

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores

Prof. Rafael A. Rosales 24 de maio de Exercício 1. De quantas maneiras é possível ordenar um conjunto formado por n elementos?

Prova Escrita de MATEMÁTICA A - 12o Ano a Fase

Ordenação e Busca em Arquivos

Implementação de Planilha de Cálculos Simplificada

Material Teórico - Módulo de ESTATÍSTICA. As Diferentes Médias. Primeiro Ano do Ensino Médio

( ) III) ESPAÇOS VETORIAIS REAIS. Definição: Denomina-se espaço vetorial sobre os Reais (R) ao conjunto não vazio. 1) Existe uma adição:

Análise de Regressão Linear Múltipla I

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal.

Módulo Elementos Básicos de Geometria - Parte 3. Diagonais de Poĺıgonos. Professores Cleber Assis e Tiago Miranda

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007.

NOTAÇÕES. Observação: Os sistemas de coordenadas considerados são os cartesianos retangulares.

GRAFOS E CONTAGEM DUPLA Carlos Yuzo Shine, Colégio Etapa

Ordenação (Parte 1) Prof. Túlio Toffolo BCC202 Aula 13 Algoritmos e Estruturas de Dados I

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal.

ESTIMAÇÃO DA PROPORÇÃO POPULACIONAL p

Sumário. 2 Índice Remissivo 17

Ordenação. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Transformação de similaridade

SUCESSÕES DE NÚMEROS REAIS. Sucessões

O Algoritmo de Ordenação Smoothsort Explicado

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Binômio de Newton e Triangulo de Pascal. Segundo Ano do Ensino Médio

4.2 Numeração de funções computáveis

Medidas de Posição. É igual ao quociente entre a soma dos valores do conjunto e o número total dos valores.

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS UFGD FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS FACET DIONISIO NOGUEIRA NETO

Matemática. B) Determine a equação da reta que contém a diagonal BD. C) Encontre as coordenadas do ponto de interseção das diagonais AC e BD.

ARRANJO SIMPLES PROFº: VALDÉCIO FÉLIX. Choquitomóvel

O termo "linear" significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2

étodos uméricos MÉTODO DOS MOMENTOS - MOM Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Amostras Aleatórias e Distribuições Amostrais. Probabilidade e Estatística: afinal, qual é a diferença?

Universidade Federal do Rio Grande FURG. Instituto de Matemática, Estatística e Física IMEF Edital 15 CAPES BINÔMIO DE NEWTON

Faculdade Campo Limpo Paulista Mestrado em Ciência da Computação Complexidade de Algoritmos Avaliação 2

PROJETO E ANÁLISES DE EXPERIMENTOS (PAE) PROJETO FATORIAL 2 k COMPLETO E REPLICADO. Dr. Sivaldo Leite Correia

PROF. DR. JACQUES FACON

05 - (MACK SP) O coeficiente do termo em x -3 no BINÔMIO DE NEWTON. desenvolvimento de (UNIFOR CE) No desenvolvimento do binômio.

2.2. Séries de potências

DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL. todas as repetições). Então, para todo o número positivo ξ, teremos:

Soluções dos Exercícios do Capítulo 6

Aula 3 : Somatórios & PIF

1.1. Ordem e Precedência dos Cálculos 1) = Capítulo 1

Transcrição:

SCC-0 Algoritmos Avaçados Capítulo 6 Aálise Combiatória Adaptado por João Luís G. Rosa Orgaização Itrodução Técicas de Cotagem Elemetares Relações de Recorrêcia Coeficietes Biomiais Seqüêcias Idução Matemática Algumas Fórmulas Úteis

Itrodução Aálise combiatória pode ser defiida como um ramo da matemática dedicado à cotagem de elemetos ou evetos discretos e de suas possíveis combiações. Exemplo: Quatas sehas são possíveis com 8 caracteres utilizado letras maiúsculas, miúsculas e dígitos? Para problemas de cotagem como este acima, detre tatos outros, existem soluções fechadas: Fórmulas matemáticas resultates da aálise combiatória. 3 Itrodução Importâcia da Aálise Combiatória: Para Computação em Geral: Várias classes de problemas de cotagem ocorrem recorretemete em ciêcia da computação e programação. Pode substituir um algoritmo com tempo de execução elevado e/ou codificação complexa (p. ex. bactracig!!!) por uma úica chamada a uma simples fórmula. Para Competições de Programação: Nota Nota (Siea (Siea& Revilla, Revilla, 003; 003; p. p. 9): 9): The Thejudge judgeca t loo looito itoyour yourheart heartor or your yourprogram programto to see seeyour youritetios: it it oly olychecs checsthe theresults. Evolve problemas que são ideais para competições, pois ao mesmo tempo que são aparetemete complexos, admitem soluções simples, desde que vistos da forma correta. Permitem em algus casos a obteção de loo-up tables para soluções off-lie de forma muito mais rápida que via força bruta. 4

Técicas de Cotagem Elemetares Cotagem de Associações: Uma associação é um arrajo de ites, ode cada item pode ser escolhido de uma lista de m valores, com repetição. Por exemplo, quatas formas diferetes existem de se pitar 4 casas utilizado 3 cores? Logo, o úmero de possíveis associações é: S (, m) m Exemplo: Existem S(4,3) 3 4 8 associações possíveis etre 4 casas e 3 cores. 5 Técicas de Cotagem Elemetares Cotagem de Associações: Outros exemplos de associações são: Subcojutos: um subcojuto é uma seleção de elemetos a partir de ites, ode cada elemeto é selecioado uma úica vez. Em outras palavras, trata-se de uma seleção sem reposição. A seleção ou ão de cada um dos elemetos pode ser represetada de forma biária: arrajo biário de posições. Logo, o úmero de possíveis subcojutos é S(,). Exemplo: Os S(3,) 3 8 subcojutos dos os.,,3 são:, {}, {}, {3}, {,}, {,3}, {,3}, {,,3}. 6 3

Técicas de Cotagem Elemetares Cotagem de Associações: Outros exemplos de associações são: Strigs: uma strig é uma seleção de detre m ites, ode cada item pode ser selecioado mais de uma vez. Em outras palavras, trata-se de uma seleção com reposição. A strig pode ser represetada como um vetor: vetor de posições, cada uma podedo assumir m valores. Logo, o úmero de possíveis strigs é S(,m) m. Note que o úmero de strigs biárias de tamaho é igual ao úmero de subcojutos de elemetos. Exemplo: 3 8 subcojutos de 3 elemetos. 3 8 strigs biárias de tamaho 3. 7 Técicas de Cotagem Elemetares Cotagem de Associações: Outros exemplos de associações são: Um computador de 3 bits é capaz de edereçar quatos gigabytes de memória (cosiderado o barrameto de edereços tamaho da palavra)? S(3,) 3 4,94,967,96 4Gb Quatas sehas diferetes é possível criar utilizado de 8 a 0 letras ou dígitos, cosiderado letras miúsculas e maiúsculas? S( 8,6) + S(9,6) + S(0,6) 85,836,45,44,603,776 8 4

Técicas de Cotagem Elemetares Permutações: Uma permutação é um arrajo de ites, ode cada item aparece exatamete uma úica vez. O o elemeto do arrajo pode assumir qualquer um dos ites, o o pode assumir ites (qualquer um dos ites meos o assumido pelo primeiro elemeto), etc. Logo, o úmero de possíveis permutações é: P( )! i i Exemplo: As! 6 permutações dos úmeros,,3 são: 3, 3, 3, 3, 3 e 3. ( ) L 9 Técicas de Cotagem Elemetares Outros exemplos de permutações: Permutações são uma ferrameta a prova matemática que algoritmos de ordeação de propósito geral (ordeação baseada somete em comparações de chaves) podem levar o míimo um tempo proporcioal a log para ordear elemetos. Por exemplo, para um vetor de 3 elemetos ( 3), existem 6 possíveis permutações (P(3)), sedo que pelo meos uma delas é o vetor ordeado. Qual delas? Um algoritmo ótimo possui a seguite estratégia... 0 5

Técicas de Cotagem Elemetares abc, acb, bac, bca, cab, cba a < b? abc, acb, cab bac, bca, cba a < c? b < c? abc abc, acb b < c? acb cab abc, acb a < c? bac bca cba Técicas de Cotagem Elemetares abc, acb, bac, bca, cab, cba a < b? P()! abc abc, acb b < c? abc, acb, cab bac, bca, cba a < c? b < c? acb cab abc, acb a < c? bac bca cba É possível mostrar que O(log!) O( log ) log! 6

Técicas de Cotagem Elemetares Permutações II: Pode-se também estar iteressado as permutações de m dos ites. Por exemplo, em um campeoato com 0 equipes, quatas variações são possíveis para as 3 primeiras colocações? Existem 0 possibilidades para o primeiro colocado, 9 para o segudo e 8 para o terceiro, portato 0 x 9 x 8 70.! P(, m) ( m)! Observe que P() P(,). Técicas de Cotagem Elemetares Outros exemplos de permutações II: Quatas sehas de 8 letras é possível costruir com 6 possíveis caracteres (letras maiúsculas e miúsculas e úmeros), se ehuma letra pode ocorrer mais de uma vez? 6! P( 6,8) 36,35,893,334,400 (6 8)! Como calcular 6 sem causar overflow!? Note que:! P(, m) i ( m)! i m+ ( ) K ( m + ) 7

Técicas de Cotagem Elemetares Combiações: Pode-se estar iteressado em selecioar m de ites, mas ão há iteresse a ordem desses m ites. No exemplo do campeoato, pode-se querer saber os três primeiros colocados, sem ter iteresse em saber a ordem dos três primeiros colocados. Sabe-se que existem P(0,3) 70. Sabe-se também que P(3) 6. Portato o úmero de combiações é 70/6 0. m P(, m)! P( m) ( m)! m! Técicas de Cotagem Elemetares Outros exemplos de combiações: Qual é o úmero de mãos de poer diferetes que podem ser obtidas? Uma mão de poer possui 5 cartas de um uiverso de 5 cartas. P(5,5) 5!/(5-5)! 3,875,00 Etretato, ão há iteresse a ordem em que as cartas são recebidas. Como P(5) 5! 0, etão 5 P(5,5) 5 P(5) 3,875,00 0,598,960 8

Técicas de Cotagem Elemetares Outros exemplos de combiações: Coeficietes da Expasão Biomial: ( ) a + b ( a + b) ( a + b) L ( a + b) a + b + 444444444 3 m vezes c m a m b m Note que o coeficiete c m correspode ao úmero de possíveis diferetes combiações de m a s selecioados detre os dispoíveis para compor o produto com os m b s dos biômios restates. Exemplo: (a+b) (a+b)(a+b) a + ab + b Logo, por defiição, tem-se: c m m Técicas de Cotagem Elemetares Outros exemplos de combiações: Triâgulos em Polígoos Covexos: 6 5 4 3 Qual o úmero N de triâgulos iteros e compartilhado vértices com um polígoo covexo de vértices? Resposta: como o polígoo é covexo, qualquer trio de vértices formará um triâgulo itero. Logo, tem-se: N 3 Nota: todas as permutações redudates são cotadas apeas uma vez a equação acima. 9

Técicas de Cotagem Elemetares Outros exemplos de combiações: Camihos através de uma grade: Quatas são as diferetes possíveis formas de camihar em uma grade x m a partir do cato superior esquerdo e alcaçar o cato iferior direito camihado apeas para baixo e para a direita? Note que cada camiho é ecessariamete costituído de um cojuto de + m passos, para baixo e m para a direita. Necessariamete, dois camihos distitos diferem a ordem de um ou mais dos passos para baixo, detro dos + m passos totais. Exemplo (grid x): baixo direita baixo direita (ordes e 3) baixo baixo direita direita (ordes e ) Logo, a resposta é: + m Coeficietes Biomiais Cálculo dos Coeficietes Biomiais: Pode-se calcular os coeficietes biomiais por meio da equação:! m ( m)! m! ( ) K ( m + ) m ( m ) K No etato, o uso desta equação para computar os coeficietes pode facilmete levar a overflows durate os cálculos itermediários das multiplicações. 0

Coeficietes Biomiais Cálculo dos Coeficietes Biomiais: Pode-se calcular os coeficietes biomiais por meio da equação: No etato, o uso desta equação para computar os coeficietes pode facilmete levar a overflows durate os cálculos itermediários das multiplicações. ) ( ) ( ) (! )! (! + K K m m m m m m Coeficietes Biomiais Para calcular qualquer coeficiete usado essa recorrêcia, precisamos de valores base cohecidos. Para tato toma-se: Exemplos: U ites detre maeira de escolher ites maeira de escolher 0 detre 0 4 3 0 3 4 3; 3 3 0 3 ; 0 + + + + + m m m

Coeficietes Biomiais + m m m A execução desse procedimeto para 0,..., e 0,... leva a uma matriz triagular cohecida como Triâgulo de Pascal: Notas: 3 4 5 3 6 0 4 0 M m A (+)-ésima liha represeta os coeficietes para 0. As froteiras (elemetos uitários) represetam os valores base. 5 Os elemetos itermediários são sempre dados pela soma do elemeto imediatamete acima e o seu predecessor à esquerda. A propriedade fica clara observado a matriz. m m Triâgulo de Pascal Cada úmero do triâgulo de Pascal é igual à soma do úmero imediatamete acima e do atecessor do úmero de cima: 0 3 4 5 A soma de uma liha o triâgulo de Pascal é igual a 4

Coeficietes Biomiais + m m m Código para obteção do triâgulo de Pascal: 3 4 5 3 6 0 4 0 M 5 Relações de Recorrêcia Uma relação de recorrêcia é uma equação defiida em termos de si mesma (recorrete). Trata-se de um coceito matemático itimamete ligado ao coceito de recursão em computação. Por exemplo, qualquer poliômio: p (x) c 0 + c x +... + c x pode ser escrito recorretemete (regra de Hor) como p i (x) c -i + x p i- (x) ; p 0 (x) c e computado recursivamete em tempo O(). 3

Relações de Recorrêcia Importâcia: Muitas recorrêcias podem ser expressas simplificadamete através de fuções: Isso permite o cálculo aalítico de qualquer termo de seqüêcias uméricas recorretes, idepedete da quatidade de termos precedetes. Exemplo (Números de Fiboacci): F F - + F - ; F 0 0, F 0,,,, 3, 5, 8, 3,, 34, 55,... F sqrt(5) * ( (( + sqrt(5))/) (( sqrt(5))/) ) Relações de Recorrêcia Importâcia (cot.): Muitas fuções podem ser facilmete expressas como recorrêcias: Exemplos: a a a -, a 0 a! a a -, a 0 Isso permite simplificar o cálculo computacioal de algumas dessas fuções. Exemplos: Poliômios (regra de Hor) Coeficietes Biomiais 4

Seqüêcias Além da seqüêcia de Fiboacci vista ateriormete, existem outras seqüêcias uméricas de particular iteresse por aparecerem em uma variedade grade de aplicações (e problemas de programação). Números de Catala: C 0 C C + Para C 0 tem-se C, >0, como:,, 5, 4, 4, 3, 49, 430... Exemplo (triagulações de polígoos covexos): 5...... Seqüêcias C 0 C C + Números de Catala (cot.): Quatas são as possíveis formas de costruir uma fórmula balaceada com pares de parêteses? Exemplo (3): ((())), ()(()), (())(), (()()), ()()() 5 formas Observe que o parêtesis mais à esquerda l deve fazer par com algum parêtesis direito r, o que divide os demais pares em dois grupos (possivelmete ulos): aqueles etre l e r : ((())), ( )(()), (())(), (()()), ( )()() aqueles à direita de r : ((())), ( )(()), (())(), (()()), ( )()() Se a parte itera cotém pares, a parte à direita deve ecessariamete coter ( ) pares. Obviamete, ambas devem costituir fórmulas balaceadas. 5

Seqüêcias C 0 C C + Números de Catala (cot.): Defiido C como o o. de possíveis formas de costruir uma fórmula balaceada com pares de parêteses, tem-se que: Existem C possíveis formas de costruir a fórmula balaceada itera aos parêteses l e r. Aalogamete, existem C -- possíveis formas de costruir a fórmula balaceada à direita de r. Para cada forma itera existem C -- possíveis formas à direita. Logo: C 0 C C Obs: C 0 pois só existe uma forma de costruir uma fórmula balaceada com 0 pares de parêteses, o ulo (cojuto vazio). Seqüêcias C 0 C C + Números de Catala (cot.): Uma outra situação ode observa-se essa mesma série de úmeros é a cotagem do úmero de diferetes árvores biárias próprias com + folhas: 5... Nota: Pode-se obter úmeros iiciais por bactracig.... 6

Seqüêcias Números de Euler : Os úmeros de Euler (ou Euleriaos) cotam qual o úmero de permutações de ites com exatamete ascedetes. Uma permutação é um rearrajo de uma lista ordeada de ites Um ascedete de uma permutação {a, a,..., a } é um par (a i,a i+ ) tal que a i < a i+ (de acordo com a ordem estabelecida) Exemplo: As permutações de {,,3} são: {,,3}, {,3,}, {,,3}, {,3,}, {3,,}, {3,,} As permutações com exatamete ascedete são: 3 {,3,}, {,,3}, {,3,}, {3,,} 4 Seqüêcias Números de Euler (cot.) : Pode-se demostrar que os úmeros de Euler respeitam a seguite relação de recorrêcia ( > 0 e 0 < < ): + ( + ) Os valores base cohecidos são ( 0 e ): 0 (permutação descedete iversa) (permutação ascedete origial) Observe a similaridade com os Coef. Biomiais e o Triâgulo de Pascal 7

Idução Matemática Dada uma seqüêcia ou relação de recorrêcia e valor(es) base cohecido(s), como obter uma expressão fechada para o -ésimo termo? Por exemplo, T T + ; T 0 0 0 3 4 5 6 7 T 0 3 7 5 3 63 7 Uma das metodologias matemáticas para solucioar esse tipo de problema é idução. Essa metodologia requer uma hipótese, usualmete obtida a partir da observação de um cojuto de valores iiciais cohecidos e, possivelmete, ajustes por tetativa-e-erro. No exemplo acima, uma hipótese óbvia é T Exige Experiêcia!!! 35 Idução Matemática 0 3 4 5 6 7 T 0 3 7 5 3 63 7 T T + ; T 0 0 Três Passos da Prova por Idução: Mostre que a hipótese satisfaz o valor base: T 0 0 0 Assuma que a hipótese é válida para qualquer : T Use esta hipótese para geeralizar para os elemetos seguites: T + T + ( ) + + + + As razões da validade deste tipo de prova estão itimamete ligadas às razões do fucioameto de programas recursivos: Garate-se o fucioameto para caso(s) base (boudary coditios) Obtém-se o caso geral (geeral coditios) garatido que este fucioa como uma fução do caso imediatamete aterior. 36 8

Idução Matemática Exemplo: Seqüêcia:? 0 0 Caso base: 0 0 ( + ) Hipótese: Validade o Caso Base: 0 0( 0 + ) 0 Validade o Caso Geral: + + 0 0 ( + ) ( + ) + ( + ) ( + )( + ) 37 Algumas Fórmulas Úteis Série Aritmética: Soma de Quadrados: ( + ) 0 0 ( + )( + ) 6 Soma de Cubos: 0 3 ( + ) 4 38 9

Para Saber Mais... Graham, R., Kuth, D. & Patashi, O., Cocrete Mathematics, Addiso-Wesley, 989. Siea, S. Implemetig Discrete Mathematics: Combiatorics ad Graph Theory with Mathematica, Addiso-Wesley, 990. A Eciclopédia O-lie de Sequêcias de Iteiros: http://www.research.att.com/~jas/sequeces/idex.html?laguage portuguese Corme, T. H., Leiserso, C. E. & Rivest, R. L. Itroductio to Algorithms. MIT Press, d. Ed., 00.... 39 Self-describig Sequece Popularidade: C, Sucess rate: high, Level: Solomo Golomb's self-describig sequece f (), f (), f (3),... is the oly o-decreasig sequece of positive itegers with the property that it cotais exactly f () occurreces of for each. A few momet's thought reveals that the sequece must begi as follows: 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 I this problem you are expected to write a program that calculates the value of f() give the value of. 40 0

Self-describig Sequece Iput The iput may cotai multiple test cases. Each test case occupies a separate lie ad cotais a iteger (,000,000,000). The iput termiates with a test case cotaiig a value 0 for ad this case must ot be processed. Output For each test case i the iput, output the value of f () o a separate lie. 4 Self-describig Sequece Sample Iput 00 Sample Output 9999 356 3456 684 000000000 0 438744 4

Self-describig Sequece Possíveis soluções: Ecotrar uma equação para f(): 43 Self-describig Sequece Possíveis soluções: Ecotrar uma equação para f(): ( ϕ ) ( ϕ ) f ( ) ϕ + E( ) Sedo: + 5 ϕ ϕ E( ) O log 44

Self-describig Sequece :, f'():.0, E(): ----- :, f'():.84, E():. : 3, f'():.37, E():.79 : 4, f'():.83, E():.70 : 5, f'(): 3.5, E():.68 : 6, f'(): 3.64, E():.69 : 7, f'(): 4.00, E():.7 : 8, f'(): 4.34, E():.74 : 9, f'(): 4.67, E():.77 : 0, f'(): 4.99, E():.80 :, f'(): 5.9, E():.84 :, f'(): 5.58, E():.87 : 3, f'(): 5.87, E():.90 : 4, f'(): 6.4, E():.94 : 5, f'(): 6.4, E():.97 : 6, f'(): 6.67, E():.00 : 7, f'(): 6.9, E():.03 : 8, f'(): 7.7, E():.06 : 9, f'(): 7.4, E():.0 : 99, f'(): 3.45, f() 3, E() 4.40 45 Self-describig Sequece Possíveis soluções: Ecotrar uma equação para f(). Ecotrar uma relação de recorrêcia. 46 3

Self-describig Sequece Possíveis soluções: Ecotrar uma equação para f(). Ecotrar uma relação de recorrêcia. f() ; f() + f(-f(f(-))). 47 Self-describig Sequece Possíveis soluções: Ecotrar uma equação para f(). Ecotrar uma relação de recorrêcia. f() ; f() + f(-f(f(-))). Essa relação poderia ajudar a calcular f(), mas... Seria muito custoso, ou; Evolveria armazear valores de f meores que. 48 4

Self-describig Sequece f(5) f(4) f() 3 f(3) f() 49 Self-describig Sequece 50 5

Self-describig Sequece 5 Self-describig Sequece É possível armazear os 0 9 valores de f()? 5 6

Self-describig Sequece É possível armazear os 0 9 valores de f()? 4 bytes por iteiro 0 9 4 Gb. 53 Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 3 3 4 4 4 5 5 3 4 5 6 7 8 9 0 f() 54 7

Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 3 3 4 4 4 5 5 f() 3 4 5 6 7 8 9 0 v: 4 6 9 6 0 4 9 3 4 5 6 7 8 9 0 55 Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 3 3 4 4 4 5 5 f() 3 4 5 6 7 8 9 0 v: 4 6 9 6 0 4 9 3 4 5 6 7 8 9 0 f() 56 8

Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 3 3 4 4 4 5 5 f() 3 4 5 6 7 8 9 0 v: 4 6 9 6 0 4 9 3 4 5 6 7 8 9 0 0, f()? f() 57 Self-describig Sequece Sample Iput 00 9999 3456 000000000 0 Sample Output 356 684 438744 58 9

Self-describig Sequece A perguta pricipal é: É possível calcular todos os valores sem TLE (time limit exceptio)? A resposta é sim, mas o algoritmo precisa ser O(). 59 Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 4 6? 3 4 5 6 7 8 9 0 f() 60 30

Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 4 6? 3 4 5 6 7 8 9 0 v[5] f(4) + f(3) + f() + f() + f() 6 Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 4 6? 3 4 5 6 7 8 9 0 v[5] f(4) + f(3) + f() + f() + v[5] 3 + + + + 9 f() 6 3

Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 4 6 9? 3 4 5 6 7 8 9 0 f() 63 Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 4 6 9? 3 4 5 6 7 8 9 0 v[6] f(5) + v[5] v[i] f(i-) + v[i-] f() 64 3

Self-describig Sequece 3 4 5 6 7 8 9 0 f() 3 3 4 4 4 5 5 5 6 v: 4 6 9? 3 4 5 6 7 8 9 0 v[6] f(5) + v[5] 3 + 9 v[i] f(i-) + v[i-] f() 65 Self-describig Sequece v: 4 6 9? 3 4 5 6 7 8 9 0 f() v[] f() + v[] 66 33

Self-describig Sequece v: 4 6 9? 3 4 5 6 7 8 9 0 f() v[] f() + v[] + v[] 67 Self-describig Sequece v[+]? v: 4 6 9? 3 4 5 6 7 8 9 0 f() v[] f() + v[] + v[] v[3] f() + v[] 68 34

Self-describig Sequece v: 4 6 9? 3 4 5 6 7 8 9 0 f() v[] f() + v[] + v[] v[3] f() + v[] + v[] 4 69 Self-describig Sequece v[+] 3? v: 4 6 9? 3 4 5 6 7 8 9 0 f() v[] f() + v[] + v[] v[3] f() + v[] + v[] 4 V[4] f(3) + v[3] 70 35

Self-describig Sequece v[+] 3? v: 4 6 9? 3 4 5 6 7 8 9 0 f() v[] f() + v[] + v[] v[3] f() + v[] + v[] 4 v[4] f(3) + v[3] + v[3] 6 7 Para a próxima aula 076 - Add Agai 0844 - Bloques 7 36

Referêcias Batista, G. & Campello, R. Slides disciplia Algoritmos Avaçados, ICMC-USP, 007. Siea, S. S. & Revilla, M. A. Programmig Challeges The Programmig Cotest Traiig Maual. Spriger, 003. Wiipedia http://pt.wiipedia.org/wii/tri%c3%agulo_de_ Pascal 73 37