Multiplicação de inteiros
|
|
|
- Isadora Teves Pacheco
- 8 Há anos
- Visualizações:
Transcrição
1 Multiplicação de inteiros Algoritmo de Karatsuba Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo 25/7/2011 Universidade Federal do ABC
2 =?
3 O problema Problema Dados números inteiros positivos u e v com n dígitos cada calcular o produto u v. exemplo: exemplo: imagine-se fazendo as contas com lápis e papel, dígito a dígito quanto tempo vai levar? tempo = número de operações elementares operação elementar = adição e multiplicação de dígitos n grande: aplicações à criptografia, fast Fourier transform, etc. P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
4 O problema Se u e v têm n dígitos cada então u v tem no máximo 2n dígitos u + v tem no máximo n + 1 dígitos Exemplos: = = P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
5 Algoritmo de multiplicação ordinário Adição ordinária u v u + v base do algoritmo: adição de dígitos n operações elementares P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
6 Algoritmo de multiplicação ordinário Multiplicação ordinária u v u v base do algoritmo: multiplicação e adição de dígitos n 2 operações elementares (na verdade, 2n 2 + n) n vezes mais lenta que adição n 2 é lento: (2n) 2 = 4 n 2 e (10n) 2 = 100 n 2 P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
7 Desafio Desafio: inventar um algoritmo de multiplicação mais rápido há 50 anos acreditava-se que não existe algoritmo mais rápido acreditava-se que n 2 operações elementares são inevitáveis vou mostrar que n 1.6 operações elementares são suficientes P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
8 Divisão e conquista É mesmo? O meu povo sempre diz multiplique e conquiste. P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
9 Divisão e conquista a u v c d b u = a 10 n/2 + b v = c 10 n/2 + d u v = (a c) 10 n + (a d + b c) 10 n/2 + b d estamos supondo n par P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
10 Divisão e conquista u v a 8888 b c 6666 d ac ad + bc bd x bom algoritmo para calculadora de bolso! P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
11 Divisão e conquista Número de operações elementares: u v = (a c) 10 n + (a d + b c) 10 n/2 + b d 4 multiplicações de tamanho n/2 (mais 3 adições) operações elementares: 4 (n/2) 2 = n 2 não ganhamos nada... Tente, então, repetir o truque recursivamente P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
12 Divisão e conquista Esqueleto do algoritmo: DIVIDA-E-CONQUISTE (u, v, n) 1 se n = 1 2 então devolva u v 3 senão m n/2 4 a u/10 m 5 b u mod 10 m devolva x Implementação: não leve as expressões u/10 m e u mod 10 m ao pé da letra P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
13 Divisão e conquista Divisão e conquista (n é potência de 2) DIVIDA-E-CONQUISTE (u, v, n) 1 se n = 1 2 então devolva u v 3 senão m n/2 4 a u/10 m 5 b u mod 10 m 6 c v/10 m 7 d v mod 10 m 8 ac DIVIDA-E-CONQUISTE (a, c, m) 9 bd DIVIDA-E-CONQUISTE (b, d, m) 10 ad DIVIDA-E-CONQUISTE (a, d, m) 11 bc DIVIDA-E-CONQUISTE (b, c, m) 12 x ac 10 2m + (ad + bc) 10 m + bd 13 devolva x P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
14 Divisão e conquista Número T (n) de operações elementares: T (1) = 1 e T (n) = 4 T (n/2) + n para n > 1 queremos uma fórmula solução da recorrência: T (n) = 4 T (n/2) + n = 4 ( 4 T (n/4) + n/2 ) + n = 16 T (n/4) + 3n = 16 ( 4 T (n/8) + n/4 ) + 3n = 64 T (n/8) + 7n = (2 j ) 2 T (n/2 j ) + (2 j 1)n = n 2 T (n/n) + (n 1)n = 2n 2 n P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
15 Divisão e conquista T (n) = 2n 2 n T (n) é proporcional a n 2 tão lento quanto o algoritmo ordinário... P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
16 Truque de Karatsuba Divisão e conquista: u = a 10 n/2 + b v = c 10 n/2 + d u v = (a c) 10 n + (a d + b c) 10 n/2 + b d 4 multiplicações de tamanho n/2 (e 3 adições) Truque y = (a + b) (c + d) = a c + a d + b c + b d u v = (a c) 10 n + (y a c b d) 10 n/2 + b d 3 multiplicações de tamanho n/2 (e 6 adições) Estamos supondo n par P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
17 Truque de Karatsuba u v ac bd a + b c + d y y ac bd x P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
18 Truque de Karatsuba Número de operações elementares: 3 multiplicações de tamanho n/2 3 (n/2) 2 = 0.75 n 2 operações elementares ganhamos 25% com uma aplicação do truque para ganhar mais, repita o truque recursivamente P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
19 Algoritmo de Karatsuba Algoritmo de Karatsuba (rascunho) RASCUNHO-DE-KARATSUBA (u, v, n) 1 se n = 1 2 então devolva u v 3 senão m n/2 5 a u/10 m 6 b u mod 10 m 7 c v/10 m 8 d v mod 10 m 9 ac RASCUNHO-DE-KARATSUBA (a, c, m) 10 bd RASCUNHO-DE-KARATSUBA (b, d, m) 11 y RASCUNHO-DE-KARATSUBA (a + b, c + d, m + 1) 12 x ac 10 2m + (y ac bd) 10 m + bd 13 devolva x Idéia básica correta, mas tem erros técnicos P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
20 Algoritmo de Karatsuba Número de operações elementares: T (n) = 3 T (n/2) + n para n = 2, 4, 8, 16,... e T (1) = 1 solução da recorrência: T (n) = 3 n lg 3 2n prova: T (n) = 3 T (n/2) + n = 3 (3 (n/2) lg 3 2(n/2)) + n = 3 (n lg 3 n) + n = 3 n lg 3 2n T (2 j ) = 3 3 j 2 2 j conclusão: T (n) é proporcional a n lg 3 P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
21 Algoritmo de Karatsuba n n 2 n lg % % % % % % % % % 2 j 4 j 3 j P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
22 Algoritmo de Karatsuba lg n lg 3 n n n lg 3 cresce mais devagar que n 2 Karatsuba é mais rapido que o algoritmo ordinário (quando n é grande) P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
23 Algoritmo de Karatsuba Algoritmo de Karatsuba: versão final, n arbitrário KARATSUBA (u, v, n) 1 se n 3 2 então devolva u v 3 senão m n/2 4 a u/10 m 5 b u mod 10 m 6 c v/10 m 7 d v mod 10 m 8 ac KARATSUBA (a, c, m) 9 bd KARATSUBA (b, d, m) 10 y KARATSUBA (a + b, c + d, m + 1) 11 x ac 10 2m + (y ac bd) 10 m + bd 12 devolva x Linha 10: m + 1 < n pois n > 3 P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
24 Algoritmo de Karatsuba Testes de Liu, Huang, Lei: milissegundos n ordinário Karatsuba % % % % % % % % P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
25 Algoritmo de Karatsuba Quem é/foi Karatsuba? A.A. Karatsuba ( ), matemático russo homepage Karatsuba descobriu o algoritmo quando tinha 23 anos o artigo foi publicado em 1962 sob os nomes de Karatsuba e Ofman P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
26 Algoritmos mais rápidos O algoritmo de Karatsuba é o mais rápido? existem algoritmos de multiplicação ainda mais rápidos algoritmo Toom-Cook: n algoritmo Schönhage-Strassen: n lg n lg lg n P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
27 Conclusão nem sempre um algoritmo óbvio é o melhor algoritmos sofisticados podem ser mais rápidos (para n grande) matemática ajuda a projetar algoritmos mais sofisticados o poder do método de divisão-e-conquista o poder da recursão é útil saber resolver recorrências Próximo passo: multiplicação rápida de matrizes P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
28 Referências Knuth, The Art of Computer Programming, 1997 Brassard, and Bratley, Algorithmics: Theory and Practice, 1988 Dasgupta, Papadimitriou, and Vazirani, Algorithms, 2006 Kleinberg, and Tardos, Algorithm Design, 2005 Multiplication algorithm Karatsuba algorithm Wikipedia Wikipedia P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
29 FIM Obrigado pela atenção! P. Feofiloff (IME-USP) Multiplicação de inteiros 25/7/ / 33
ANÁLISE DE ALGORITMOS
ANÁLISE DE ALGORITMOS Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo agosto 2009 Introdução P. Feofiloff (IME-USP) Análise de Algoritmos agosto 2009 2 / 102 Introdução
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 03 Técnicas de Projeto de Algoritmos (Divisão e Conquista) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force)
Aula 05: - Recursão (parte 1)
MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. Jesús P. Mena-Chalco [email protected] 3Q-20107 1 Recursão: Se você ainda não entendeu; Ver: "Recursão". Efeito Droste Anuncio
Aula 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".
TEORIA: 60 LABORATÓRIO: 0
Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA: BC1435 - Análise de Algoritmos
Algoritimos e Estruturas de Dados III CIC210
Algoritimos e Estruturas de Dados III CIC210 Divisão e Conquista Haroldo Gambini Santos Concurso Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Divisão e Conquista
BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade
BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade Prof. Jesús P. Mena-Chalco 1Q-2016 1 Sobre a Lista 01 2 Lista 01 Solve me first Simple Array Sum A Very Big Sum Diagonal Difference
Solução de Recorrências
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Solução de Recorrências Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ [email protected]
Recursão. Aula 1. Liana Duenha. Faculdade de Computação Universidade Federal de Mato Grosso do Sul
Recursão Aula 1 Liana Duenha Faculdade de Computação Universidade Federal de Mato Grosso do Sul Algoritmos e Programação II, Análise de Sistemas, 2010 Martinez & Rubert (FACOM) Recursão APIIAS 1 / 25 Conteúdo
ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão
Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros
Recursividade, Tentativa e Erro
Recursividade, Tentativa e Erro Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho [email protected] BCC402 Aula 07 Algoritmos e Programação Avançada Na aula anterior Prova 2 Na aula de hoje Técnicas
Complexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger [email protected] [email protected] Prof. Cristiano Damiani Vasconcellos [email protected] Um pouco de Teoria dos Números
Aula 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
FFT Fast Fourier Transform
FFT Fast Fourier Transform Carlos Alexandre Mello 1 Algoritmos Rápidos Objetivo: melhoria do desempenho de algoritmos Implementam de forma mais eficiente um algoritmo sem modificar seu resultado final
Té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 [email protected] 08/2008
Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência
Busca Binária Aula 05 Equações com Recorrência Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Idéia: Divisão e Conquista Busca_Binária(A[l...r],k) 1:if r < lthen 2: index = 1
Cálculo Diferencial e Integral I
Cálculo Diferencial e Integral I Prof. Lino Marcos da Silva Atividade 1 - Números Reais Objetivos De um modo geral, o objetivo dessa atividade é fomentar o estudo de conceitos relacionados aos números
Tópicos de Matemática Elementar
Tópicos de Matemática Elementar 2 a série de exercícios 2004/05. A seguinte prova por indução parece correcta, mas para n = 6 o lado esquerdo é igual a 2 + 6 + 2 + 20 + 30 = 5 6, enquanto o direito é igual
Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02
1 Objetivos da lista Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02 Esta lista de exercícios tem como objetivo introduzir funções na linguagem C. Como
MA14 - Aritmética Unidade 15 - Parte 1 Resumo. Congruências
MA14 - Aritmética Unidade 15 - Parte 1 Resumo Congruências 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 do assunto.
Complexidade de Algoritmos
Complexidade de Algoritmos O que é um algoritmo? Sequência bem definida e finita de cálculos que, para um dado valor de entrada, retorna uma saída desejada/esperada. Na computação: Uma descrição de como
MAT 1351 : Cálculo para Funções de Uma Variável Real I. Sylvain Bonnot (IME-USP)
MAT 1351 : Cálculo para Funções de Uma Variável Real I Sylvain Bonnot (IME-USP) 2016 1 Informações gerais Prof.: Sylvain Bonnot Email: [email protected] Minha sala: IME-USP, 151-A (Bloco A) Site: ver
PCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 7 de outubro de 2016 Marco Antonio
11.1) Noções Elementares 11.2) MDCs e algoritmos de Euclides 11.3) Aritmética modular 11.4) Aplics da MD: O sistema criptográfico RSA
Teoria de Números 11.1) Noções Elementares 11.2) MDCs e algoritmos de Euclides 11.3) Aritmética modular 11.4) Aplics da MD: O sistema criptográfico RSA Material extraído dos livros-textos (Cormen( Cormen)
if not(isinstance(a, int)) or a < 0: raise ValueError ("misterio: arg nao e inteiro nao negativo") else: return misterio_aux(a, a + 1)
Capítulo 7 Recursão e iteração 1. (1) Considere a seguinte função: def misterio(a): def misterio_aux(b, c): if b == 0: return True elif c == 0: return False return misterio_aux(b -, c - ) if not(isinstance(a,
Análise de algoritmos
Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas
INE5403 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)
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da
Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição
Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação: estruturas de repetição 1 Imagine um algoritmo para calcular a média de uma quantidade desconhecida de números Para
Modelagem 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
BCC Projeto e Análise de Algoritmos Aula 0: Apresentação
1 BCC 241 - Projeto e Análise de Algoritmos Aula 0: Apresentação DECOM/UFOP 5º. Período - 2013/01 Anderson Almeida Ferreira BCC 241/2012-2 2 Objetivos do curso Dados dois algoritmos, compará-los quanto
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar
MAT 2110 : Cálculo para Química. Sylvain Bonnot (IME-USP)
MAT 2110 : Cálculo para Química Sylvain Bonnot (IME-USP) 2014 1 Informações gerais Prof.: Sylvain Bonnot Email: [email protected] Minha sala: IME-USP, 151-A (Bloco A) Site: ver o link para MAT 2110 na
Complexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger [email protected] [email protected] Prof. Cristiano Damiani Vasconcellos [email protected] Funções de Complexidade Considere
Deixando de odiar Matemática Parte 5
Deixando de odiar Matemática Parte Adição e Subtração de Frações Multiplicação de frações Divisão de Frações 7 1 Adição e Subtração de Frações Para somar (ou subtrair) duas ou mais frações de mesmo denominador,
Algoritmos para Automação e Sistemas
Universidade Federal do Amazonas Departamento de Eletrônica e Computação Algoritmos para Automação e Sistemas Lucas Cordeiro [email protected] Notas de Aula Estes slides estão baseados livro do
Aná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.
05 Análise de Algoritmos (parte 4) SCC201/501 - Introdução à Ciência de Computação II
05 Análise de Algoritmos (parte 4) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
Teoria dos Grafos. Grafos Planares
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada [email protected], [email protected], [email protected] Grafos Planares
AULA 19 AULA 20. Ordenação: algoritmo Quicksort. Resumo. Melhores momentos
Melhores momentos Resumo AULA 19 função consumo de observação tempo bubble O(n 2 ) todos os casos insercao O(n 2 ) pior caso O(n) melhor caso insercaobinaria O(n 2 ) pior caso O(n lg n) melhor caso selecao
Análise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Prof. Josenildo Silva [email protected] IFMA, Campus Monte Castelo Depto. Academico de Informática 2 o Semestre, 2013 Prof. Josenildo Silva (IFMA) Algoritmos 2 o Semestre,
Números Inteiros Algoritmo da Divisão e suas Aplicações
Números Inteiros Algoritmo da Divisão e suas Aplicações Diferentemente dos números reais (R), o conjunto dos inteiros (Z) não é fechado para a divisão. Esse não-fechamento faz com que a divisão entre inteiros
Identidades algébricas
LIÇÃO 5 Identidades algébricas Dos três tipos básicos de transformações algébricas: decomposições, reduções e fatorações, os dois primeiros já foram estudados na lição anterior. Antes de passarmos ao terceiro
Eletrotécnica II Números complexos
Eletrotécnica II Números complexos Prof. Danilo Z. Figueiredo Curso Superior de Tecnologia em Instalações Elétricas Faculdade de Tecnologia de São Paulo Tópicos Aspectos históricos: a solução da equação
CADERNO DE EXERCÍCIOS ALGORITMOS
J. EXERCÍCIOS SOBRE MODULARIZAÇÃO 77. Faça uma função que recebe um número inteiro por parâmetro e retorna verdadeiro se ele for par e falso se for ímpar. 78. Escreva um programa que leia o raio de um
Fundamentos Tecnológicos
Fundamentos Tecnológicos Equações Algébricas e Equação de 1º Grau Início da aula 06 Equações Algébricas Expressões Algébricas - Definição Expressões algébricas são expressões matemáticas que apresentam
AULA 4. Algoritmo de Euclides. Hoje. Algoritmo de Euclides. Correção. Euclides recursivo
Hoje AULA 4 mais análise de algoritmos: algoritmo de Euclides mais recursão: curvas de Hilbert Algoritmo de Euclides Algoritmo de Euclides O máximo divisor comum pode ser determinado através de um algoritmo
Fundamentos de Matemática Curso: Informática Biomédica
Fundamentos de Matemática Curso: Informática Biomédica Profa. Vanessa Rolnik Artioli Assunto: sequências e matrizes 05 e 06/06/14 Sequências Def.: chama-se sequência finita ou n-upla toda aplicação f do
POLINÔMIOS. 1. Função polinomial. 2. Valor numérico. 3. Grau de um polinômio. 4. Polinômios idênticos
POLINÔMIOS 1. Função polinomial É a função P() = a 0 + a 1 + a + a +... + a n n, onde a 0, a 1, a,..., a n são os coeficientes e os termos do polinômio são : a 0 ; a 1 ; a ; a ;... ; a n n. Valor numérico
Análise de algoritmos
Análise de algoritmos Recorrências Conteúdo Introdução O método mestre Referências Introdução O tempo de execução de um algoritmo recursivo pode frequentemente ser descrito por uma equação de recorrência.
MAT 1351 : Cálculo para Funções de Uma Variável Real I. Sylvain Bonnot (IME-USP)
MAT 1351 : Cálculo para Funções de Uma Variável Real I Sylvain Bonnot (IME-USP) 2016 1 Informações gerais Prof.: Sylvain Bonnot Email: [email protected] Minha sala: IME-USP, 151-A (Bloco A) Site: ver
ANÁLISE DE ALGORITMOS: PARTE 4
ANÁLISE DE ALGORITMOS: PARTE 4 Prof. André Backes 2 Função recursiva Função que chama a si mesma durante a sua execução Exemplo: fatorial de um número N. Para N = 4 temos 4! = 4 * 3! 3! = 3 * 2! 2! = 2
Divisão e conquista. Eficiência de divisão e conquista
Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo
Algoritmos de Ordenação
Algoritmos de Ordenação Introdução à Ciência da Computação Prof. Edison Ishikawa Objetivo Apresentar diferentes algoritmos de ordenação de dados Mostrar como analisar os algoritmos em termos de tempo de
Estruturas de Controle de Fluxo Estruturas de Seleção. Givanaldo Rocha
Estruturas de Controle de Fluxo Estruturas de Seleção Givanaldo Rocha [email protected] http://docente.ifrn.edu.br/givanaldorocha Conceito Até agora, desenvolvemos algoritmos que nos permitem
Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder
Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver
Projeto 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
MÓDULO 29. Trigonometria I. Ciências da Natureza, Matemática e suas Tecnologias MATEMÁTICA. Fórmulas do arco duplo: 1) sen (2a) = 2) cos (2a) =
Ciências da Natureza, Matemática e suas Tecnologias MATEMÁTICA MÓDULO 9 Trigonometria I Resumo das principais fórmulas da trigonometria Arcos Notáveis: Fórmulas do arco duplo: ) sen (a) ) cos (a) ) tg
Hoje. mais análise de algoritmos: algoritmo de Euclides mais recursão: curvas de Hilbert
AULA 4 Hoje mais análise de algoritmos: algoritmo de Euclides mais recursão: curvas de Hilbert Algoritmo de Euclides Fonte: http://math.stackexchange.com/ PF 2 (Exercícios) S 5.1 http://www.ime.usp.br/
Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort
Mergesort Aula 0 Divisão e Conquista- MergeSort Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Mergesort é um algoritmo de ordenação recursivo Ele recursivamente ordena as duas
Renato Martins Assunção
Análise Numérica Renato Martins Assunção DCC - UFMG 2012 Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 1 / 84 Equação linear Sistemas de equações lineares A equação 2x + 3y = 6 é chamada linear
Resolução Exe 2.12 Monolítico Recursivo
Resolução Exe 2.12 Monolítico Recursivo Recursivo P R é R 1 onde R 1 def (se T1 então R 2 senão R 3 ) R 2 def F; R 3 R 3 def (se T2 então R 4 senão R 7 ) R 4 def G; R 5 R 5 def (se T1 então R 7 senão R
Estruturas de Dados 2
Estruturas de Dados 2 Recorrências IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/31 Recorrências Análise da Eficiência de Algoritmos: Velocidade de Execução; Análise
Aná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
