Complexidade
description
Transcript of Complexidade
Complexidade
Onde c, c1, c2 é uma constante.
f(x) = O(g(x)) se existe f(x) <= c*g(x) para x >= x0
f(x) = Ω (g(x)) se existef(x) >= c*g(x) para x >= x0
f(x) = θ (g(x)) se existef(x) <= c2*g(x)f(x) >= c1*g(x) para x >= x0
Prova 2009/2Alguns passos importantes eliminar constantes aditivas e multiplicativas se 2x² >= 1000x*c para x > x0 então eu posso garantir que x² >= x*c1
Basta escolher as constantes c e c1 corretamente.
Retirar termos semelhantes em lados opostos:Se x²*log(x) >= c*x*log(x) x² >= c*x x >= 1*c para x >= x0
Por ultimo encontrar um valor para c que torne essa equação verdadeSe não houver c que satisfaça então a premissa inicial e falsa.
Prova 2009.2
a) provar que 10n <= c*n*log(n).n <= c*n*log(n) 1 <= c*log(n)
Se você quer provar que isso e verdade entao escolha um c qualquer que torne isso verdade um n0
Não precisa se preocupar com a base do log suponha base 2 log 2 = 1, caso base, log (n+1) > log(n) para todo n > 2
prova por indução que é verdadeiro
Para provar que log(n) = θ(log (n^1000))
log(n) <= c2*(log (n^1000))log(n) >= c1*(log (n^1000))
(log n^1000) = 1000*log(n) viro constante multiplicativa
log(n) <= c2”*log(n) verdade! (c2” = 2000)log(n) >= c1”*log(n) verdade! (c1” = 1/10000)
Provado ! Que e verdadeiro
Se quisesse poderia também eliminar os termos semelhantes
1 <= c2”1 >= c1”se existe qualquer valor de c1” e c2” que torna isso verdade então e verdadeiro!
n³ = Ω (64log(n))n³ >= c*64log(n)
n³ >= c”*log(n) eliminei constantes
se eu provar isso n => log(n) será verdade que n³ >= log(n)
n => log(n) log (2^n) >= log(n) 2^n >= nTemos que provar que 2^n >= n é verdade entãoProva por indução caso base 2^0 >= 0 verdade;Indução 2^(n+1) >= n+1.2^(n+1) >= n+1 2*2^n >= n+1 2^n + 2^n >= n+1.Onde 2^n >= n (caso base da indução).E sabemos que 2^n >= 1;(propriedade de exponenciação).
Provamos que 2^n >= n então temos que n>= log(n) por transitividade temos que n^3 >= log(n).
n^3 >= c"*log(n) está provado que e verdade !
Prova 2008.1a) f(n) = O (g(n)) => g(n) = O (f(n)) b) f(n) = Θ (f(n/2))
a) Provar por contradição suponha f(n) = x e g(n) = x²
f(n) = O (g(n)) verdade!g(n) = O (f(n)) falso!
Provado! Que é falso.
b) f(n) = Θ (f(n/2))
Provar por contradição, Suponha f(n) = 2^n
Preciso provar que2^n <= c2*2^(n/2)2^n >= c1*2^(n/2)
2^n <= c2*2^(n/2) (2^n)/(2^(n/2) <= c2 2^(n/2) <= c2
Então eu tenho que 2^(n/2) <= c2 isso é falso
Então esta provado por contradição que é falso