Escolar Documentos
Profissional Documentos
Cultura Documentos
Somatrios e Recorrncias
PAA-DCC-UFAM
(n)
(n-1)
(n-1)
PAA-DCC-UFAM
PAA-DCC-UFAM
PAA-DCC-UFAM
Resolvendo somatrios
Algumas tcnicas teis
PAA-DCC-UFAM
Induo
Perturbao
Usar integrais
PAA-DCC-UFAM
Passo indutivo:
provar que
se P verdadeiro para todo k
tal que n0 k n 1
ento P verdadeiro para n
PAA-DCC-UFAM
n(n + 1)
for n 1
S ( n) = i =
2
i =0
1(1 + 1)
S (1) = i =
2
i =0
n0 = 1
PAA-DCC-UFAM
S (k ) =
i=0
S (n) =
i=
k ( k + 1)
for
, 1 k n 1
2
n 1
i=0
i=0
i = i + n = S ( n 1) + n =
( n 1 + 1)
(n 2 n + 2n)
= ( n 1)
+n=
=
2
2
n ( n + 1)
=
2
PAA-DCC-UFAM
S n = a = na para n 1
i =1
S n = a = 1.a
i =1
n0 = 1
PAA-DCC-UFAM
S k = a = ka para 1 k n - 1
i =1
n
n 1
i =1
i =1
Sn = a = a + a = S (n 1) + a
= (n 1).a + a = na a + a
= na
PAA-DCC-UFAM
Somatrios (1)
O tempo de execuo da ordenao por insero
determinado pelos loops aninhados:
for j2 to length(A)
keyA[j]
ij-1
while i>0 and A[i]>key
A[i+1]A[i]
ii-1
A[i+1]key
PAA-DCC-UFAM
Somatrios (2)
Progresso aritmtica
n2 + n
i = 1 + 2 + 3 + ... + n =
2
i =0
n
Progreso geomtrica
Seja um inteiron0 e um real 0 < a 1
1 a n +1
a = 1 + a + a + ... + a =
1 a
i =0
n
PAA-DCC-UFAM
Algumas propriedades
cak =cak
kK
Distributiva
kK
kK
a = a
k
kK
P(k)
p(k)K
Associativa
kK
Comutativa
(P uma permutao)
PAA-DCC-UFAM
k
n
3
c3
k =0
PAA-DCC-UFAM
k
n
3
c3
k =0
n +1
k
n +1
=
+
3
3
3
k
k =0
k =0
c3n + 3n +1
1 1
= + c3n +1
3 c
c3n +1
3
1 1
desde que + 1 ou, de modo equivalente, c
2
3 c
PAA-DCC-UFAM
Exemplo
Ordenao por
Insero
|A| = 2
|A| = 3
|A| = 4
...
|A| = n
for j2 to |A|
keyA[j]
ij-1
while i>0 and A[i]>key
A[i+1]A[i]
ii-1
A[i+1]key
1
1+2
1+2+3
1 + 2 + 3 + + n-1
PAA-DCC-UFAM
Perturbao (1)
Escrever Sn+1 tirando o primeiro termo e igualar a
Sn+1 tirando o ltimo termo
Encontrar Sn dos dois lados da equao
Isolar Sn para encontrar a frmula fechada para o
somatrio
PAA-DCC-UFAM
Perturbao (2)
n
S n = ak
k =0
S n +1 = S n + an +1
n +1
S n +1 = a0 + ak = a0 + ak +1
k =1
k =0
Tirando o primeiro
termo
PAA-DCC-UFAM
Perturbao (3)
n
Sn = c k
k =0
S n +1 = S n + c n +1
n +1
S n +1 = c + c = 1 + c
0
k =1
1 + cS n = S n + c n +1
n +1
1
Sn =
c 1
c
k =0
k +1
= 1 + c c = 1 + cS n
k
k =0
PAA-DCC-UFAM
Exerccio: Perturbao
n
k
a
k =1
Sn = a k
k =1
S n +1 = S n + a n +1
n +1
k =2
k =1
k =1
S n +1 = a1 + a k = a + a k +1 = a + a a k = a + aS n
S n + a n +1 = a + aS n
a n +1 a
Sn =
a 1
PAA-DCC-UFAM
Integrais
Integrais podem ser usadas para
encontrarmos o valor aproximado de um
somatrio, indicando seu comportamento
assinttico
Exemplo:
n
2
=
=
i
O
(
i
)
O
(
n
)
i =0
PAA-DCC-UFAM
Exerccio: Integrais
Encontre o valor aproximado dos seguintes
somatrio: a, i , 1
n
i =1
i =1
n
a = a = (n )
i =1
1
n
n
3
3
4
i
=
i
=
i =1
1
n
n 1
1
= = (ln n )
i =1 i
1 i
n
( )
i =1
PAA-DCC-UFAM
Diviso e Conquista
Mtodo usado para projeto de algoritmos:
Diviso: Se o tamanho da entrada muito grande
para aplicao de uma soluo simples, dividir o
problema em dois ou mais subproblemas disjuntos
Conquista: Usar o mtodo recursivamente para
resolver os subproblemas
Combinao: Obter as solues dos subproblemas e
combin-las para compor uma soluo para o
problema original
PAA-DCC-UFAM
MergeSort
Diviso: Se S tem n2 elementos, dividir seus
elementos em duas subsequncias S1 e S2 com
respectivamente n/2 e n/2 elementos
Conquista: Ordernar as subsequncias S1 e S2
usando MergeSort
Combinao: Intercale os elementos de S1 e S2
de forma a obter uma seqncia ordenada
PAA-DCC-UFAM
2)
3)
4)
PAA-DCC-UFAM
A o arranjo
p, q e r so ndices de
numerao dos elementos
do arranjo p q < r
PAA-DCC-UFAM
MergeSort (Exemplo) - 1
PAA-DCC-UFAM
MergeSort (Exemplo) - 2
PAA-DCC-UFAM
MergeSort (Exemplo) - 3
PAA-DCC-UFAM
MergeSort (Exemplo) - 4
PAA-DCC-UFAM
MergeSort (Exemplo) - 5
PAA-DCC-UFAM
MergeSort (Exemplo) - 6
PAA-DCC-UFAM
MergeSort (Exemplo) - 7
PAA-DCC-UFAM
MergeSort (Exemplo) - 8
PAA-DCC-UFAM
MergeSort (Exemplo) - 9
PAA-DCC-UFAM
MergeSort (Exemplo) - 10
PAA-DCC-UFAM
MergeSort (Exemplo) - 11
PAA-DCC-UFAM
MergeSort (Exemplo) - 12
PAA-DCC-UFAM
MergeSort (Exemplo) - 13
PAA-DCC-UFAM
MergeSort (Exemplo) - 14
PAA-DCC-UFAM
MergeSort (Exemplo) - 15
PAA-DCC-UFAM
MergeSort (Exemplo) - 16
PAA-DCC-UFAM
MergeSort (Exemplo) - 17
PAA-DCC-UFAM
MergeSort (Exemplo) - 18
PAA-DCC-UFAM
MergeSort (Exemplo) - 19
PAA-DCC-UFAM
MergeSort (Exemplo) - 20
PAA-DCC-UFAM
MergeSort (Exemplo) - 21
PAA-DCC-UFAM
MergeSort (Exemplo) - 22
PAA-DCC-UFAM
Recorrncias
As chamadas recursivas nos algoritmos podem
ser descritas usando-se equaes(ou inequaes)
de recorrncia
Recorrncia uma equao ou desigualdade que
descreve uma funo em termos dos seus
valores para entradas menores
PAA-DCC-UFAM
Recorrncias (2)
Exemplo: Busca Binria
BuscaBin(A[1n],q)
if n=1
then if A[n]=q then return n
else return 0
k(n+1)/2
if q < A[k] then BuscaBin(A[1k-1],q)
else BuscaBin(A[kn],q)
PAA-DCC-UFAM
Exemplo: MergeSort
Suposio: O tamanho do problema original
uma potncia de dois (simplificao)
Duas
subsequncia
s de tamanho
n/2
Merge-Sort(A, p, r)
if p < r then
q(p+r)/2
Merge-Sort(A, p, q)
Merge-Sort(A, q+1, r)
Merge(A, p, q, r)
PAA-DCC-UFAM
Procedimento do Merge
(1)
(1)
Merge(A, p, q, r)
n1 = q-p+1
n2 = r-q
criar arranjos L[0..n1] e R[0..n2]
for i=0 to n1-1
(n1)
do L[i]=A[p+i]
for j=0 to n2-1
(n2)
do R[j]=A[q+j+1]
L[n1]=
R[n2]=
i=0
j=0
for k=p to r
do if L[i] R[j]
then A[k]=L[i]
(n)
i=i+1
else A[K]=R[j]
j=j+1
PAA-DCC-UFAM
Complexidade do MergeSort
Caso base: ocorre quando
n=1. Como lg 1=0, temos
que lg n +1 fornece o
nmero correto
Hiptese indutiva: uma
rvore de 2i ns, temos lg
2i+1=i+1. Para 2i+1 ns
temos lg 2i+1+1 = (i+1)+1
cn(lg n + 1) = (n lg n )
PAA-DCC-UFAM
Exerccios
Utilize as tcnicas de induo, perturbao e
integrais para resolver os seguintes
somatrios: