• Nenhum resultado encontrado

Polinômios esparsos

N/A
N/A
Protected

Academic year: 2022

Share "Polinômios esparsos"

Copied!
17
0
0

Texto

(1)

Estruturas de Dados

Cristina Gomes Fernandes

(2)

Representação de polinômios

p(x) = −4 + 2x − 6x2 + 3x4

0 1 2 3 4

−4 −2 −6 −0 −3

(3)

Representação de polinômios

p(x) = −4 + 2x − 6x2 + 3x4

0 1 2 3 4

−4 −2 −6 −0 −3

Soma de um polinômio de grau n com um de grau m consome tempo Θ(n + m).

Produto consome tempo Θ(mn).

(Há um pequeno cuidado que você deve tomar na implementação para garantir esse consumo.)

(4)

Polinômios esparsos

Representação com lista ligada circular com cabeça:

cada célula tem os campos coef , expo e prox. p(x) = −4 + 2x7 − 6x23 + 3x105

−4 0 2 7 −6 23 3 105

(5)

Polinômios esparsos

Representação com lista ligada circular com cabeça:

cada célula tem os campos coef , expo e prox. p(x) = −4 + 2x7 − 6x23 + 3x105

−4 0 2 7 −6 23 3 105

A cabeça tem ∞ no seu campo expo.

(6)

Polinômios esparsos

Representação com lista ligada circular com cabeça:

cada célula tem os campos coef , expo e prox. p(x) = −4 + 2x7 − 6x23 + 3x105

−4 0 2 7 −6 23 3 105

A cabeça tem ∞ no seu campo expo.

Os elementos estão ordenados pelo expoente.

Apenas monômios com coeficiente não-nulo devem estar presentes na lista.

(7)

Soma de polinômios esparsos

SOMA (p, q)

1 s ← NULO() polinômio nulo 2 app ← prox(p)

3 apq ← prox(q)

4 enquanto expo(apq) 6= ∞ ou expo(apq) 6= ∞ faça 5 se expo(app) < expo(apq)

6 então coef (s) ← coef (app) 7 então expo(s) ← expo(app) 8 então app ← prox(app)

9 senão se expo(app) > expo(apq) 10 senão então coef (s) ← coef (apq) 11 senão então expo(s) ← expo(apq) 12 senão então apq ← prox(apq)

13 senão senão · · · expo(app) = expo(apq)

(8)

Soma de polinômios esparsos

SOMA (p, q) 1 · · ·

4 enquanto apq 6= NIL ou apq 6= NIL faça 5 · · ·

13 senão expo(app) = expo(apq)

14 se coef (app) + coef (apq) 6= 0

15 então coef (s) ← coef (app) + coef (apq) 16 então expo(s) ← expo(app)

17 app ← prox(app) 18 apq ← prox(apq) 19 se expo(s) 6= ∞

20 então t ← NOVACÉLULA(0, ∞) 21 então prox(t) ← prox(s)

22 então prox(s) ← t

(9)

Soma de polinômios esparsos

NULO ()

1 p ← NOVACÉLULA(0, ∞) 2 prox(p) ← p

3 devolva p

(10)

Soma de polinômios esparsos

NULO ()

1 p ← NOVACÉLULA(0, ∞) 2 prox(p) ← p

3 devolva p

Consumo de tempo:

O algoritmo SOMA consome tempo Θ(n + m),

onde n e m são o número de monômios não-nulos em p e q respectivamente.

(11)

Produto de polinômios esparsos

PRODUTO (p, q)

1 r ← NULO() polinômio nulo 2 app ← prox(p)

3 enquanto expo(app) 6= ∞ faça 4 apq ← prox(q)

5 t ← r

6 enquanto expo(apq) 6= ∞ faça

7 enquanto expo(prox(t)) < expo(app) + expo(apq) 8 faça t ← prox(t)

9 se expo(prox(t)) 6= expo(app) + expo(apq)

10 então s ← NOVACÉLULA(coef (app) ∗ coef (apq), então s ← NOVACÉLULA(expo(app) + expo(apq)) 11 então prox(s) ← prox(t)

12 então prox(t) ← s 13 senão · · ·

(12)

Produto de polinômios esparsos

PRODUTO (p, q) 1 · · ·

3 enquanto expo(app) 6= ∞ faça 4 · · ·

6 enquanto expo(apq) 6= ∞ faça 7 · · ·

13 senão se coef (prox(t)) + coef (app) ∗ coef (apq) = 0 14 senão então s ← prox(t)

15 senão então prox(t) ← prox(s) 16 senão então LIBERACÉLULA(s) 17 senão senão t ← prox(t)

18 senão senão coef (t) ← coef (t)+

senão senão coef (app) ∗ coef (apq) 19 apq ← prox(apq)

( )

(13)

Consumo de tempo do produto

Sejam n e m o número de monômios com coeficiente não-nulo em p e q respectivamente.

(14)

Consumo de tempo do produto

Sejam n e m o número de monômios com coeficiente não-nulo em p e q respectivamente.

O polinômio r construído pode ter mn monômios com coeficiente não-nulo no pior caso.

(15)

Consumo de tempo do produto

Sejam n e m o número de monômios com coeficiente não-nulo em p e q respectivamente.

O polinômio r construído pode ter mn monômios com coeficiente não-nulo no pior caso.

Assim sendo, para cada iteração do enquanto da linha 3, o número total de execuções da linha 8 é O(mn).

(16)

Consumo de tempo do produto

Sejam n e m o número de monômios com coeficiente não-nulo em p e q respectivamente.

O polinômio r construído pode ter mn monômios com coeficiente não-nulo no pior caso.

Assim sendo, para cada iteração do enquanto da linha 3, o número total de execuções da linha 8 é O(mn).

Como entramos no enquanto da linha 3 n vezes,

o consumo de tempo do PRODUTO é O(mn2) no pior caso.

(17)

Consumo de tempo do produto

Sejam n e m o número de monômios com coeficiente não-nulo em p e q respectivamente.

O polinômio r construído pode ter mn monômios com coeficiente não-nulo no pior caso.

Assim sendo, para cada iteração do enquanto da linha 3, o número total de execuções da linha 8 é O(mn).

Como entramos no enquanto da linha 3 n vezes,

o consumo de tempo do PRODUTO é O(mn2) no pior caso.

Logo, a implementação fica mais eficiente se deixarmos no papel de p sempre o polinômio entre p e q com menos

monômios não-nulos.

Referências

Documentos relacionados

Figura 20: Gráficos Resultantes da Análise da Infiltração do Solo Gramínea Seco no Ponto Baixo, Pontos A e B, e a Média dos Resultados nos Dois Pontos, na Figura 20A e

(1989) sugerem que os distúrbios da AV e motilidade visual resultam no déficit de desenvolvimento do córtex visual e conseqüentemente influenciam a inteligência não verbal

O presidente da CNT, Vander Costa, participou, nessa quarta-feira (2), de audiência pública interativa realizada pela Comissão Mista da Reforma Tributária, no Congresso

As amostras controle reagente e não reagente usadas para a validação dos testes de IFI e HA foram obtidas a partir de amostras da rotina diagnóstica de cisticercose no CIM

Resumo: A proposta visa contribuir com a construção de políticas públicas efetivas para o enfrentamento da violência contra a mulher sob os auspícios da Lei Maria da Penha.. O

Neste período a estratégia adotada pelo município é coerente a proposta de Campos (1990), de interagir com as partes relacionadas (órgãos fiscalizadores e controle

Portanto, integrar as tecnologias digitais na matemática financeira e inserir problemas com contextualização, pode ser uma oportunidade de avançar no processo

Sobre o estado ferromagnético encontrado nesse trabalho, Kato et al não realizaram medidas completas de magnetismo (por medidas completas entende-se, aqui, como sendo