POSCOMP 2019: Questão 22 Resolvida (Notações Assintóticas)

Por
| 

Logotipo do POSCOMP 2019

Questão

Considere as seguintes funções:

f(n)=2ng(n)=n!h(n)=nlogn

Assinale a alternativa correta a respeito do comportamento assintótico de f(n), g(n) e h(n).

  • (A) f(n)=O(g(n));g(n)=O(h(n))
  • (B) f(n)=Ω(g(n));g(n)=O(h(n))
  • (C) g(n)=O(f(n));h(n)=O(f(n))
  • (D) h(n)=O(f(n));g(n)=Ω(f(n))
  • (E) Nenhuma das anteriores.

Resolução

Observe que a questão em si consiste basicamente em verificar qual função é assintoticamente maior ou menor que a outra.

Isto é, a partir de qual valor de n suficientemente grande uma função será sempre menor ou maior em comparação com as demais.

Na prática, se soubermos ordenar as funções assintoticamente, podemos resolver o problema.

No blog, já foi abordado que a complexidade fatorial n! é pior que a exponencial 2n e que, consequentemente, 2n=O(n!).

Isso elimina as alternativas B e C, já que é falso dizer que f(n)=Ω(g(n)) (isso seria equivalente a dizer que assintoticamente 2nn!, que é falso) e também é falso dizer g(n)=O(f(n)).

Todavia, a função nlogn pode ser um pouco confusa (especialmente se levarmos em conta que não foi dado a base do logaritmo, embora, nesse caso, a informação não seja relevante e assumiremos que a base é 2).

Por causa isso, utilizaremos a seguinte tabela (casas decimais foram truncadas), para verificarmos a partir de qual valor de n uma função é maior ou menor que a outra assintoticamente.

n
h(n)=nlog2n
f(n)=2n
g(n)=n!
1 1 2 1
2 2 4 2
3 5 8 6
4 16 16 24
5 41 32 120
6 102 64 720
7 235 128 5040
8 512 256 40320
9 1058 512 362880
10 2098 1024 3628800
11 4005 2048 39916800
12 7393 4096 4,79×108
13 13245 8192 6,23×109
14 23105 16384 8,72×1010
15 39342 32768 1,31×1012
16 65536 65536 2,09×1013
17 107007 131072 3,56×1014
18 171550 262144 6,40×1015

Observe que a partir do valor n=17, já é possível definir a ordem de crescimento das funções.

Por meio dos dados da tabela, verificamos que as funções podem ser colocadas na seguinte ordem (da menor para a maior) em termos de crescimento assintótico: nlogn, 2n e n!. Portanto, é falso afirmar que g(n)=O(h(n)), já que g(n)=n! é assintoticamente maior que h(n)=nlogn. Isso elimina a alternativa A.

Analisando a alternativa D, vemos que h(n)=O(f(n)) é verdadeiro (isto é, nlogn=O(2n)) e também é verdadeiro dizer que g(n)=Ω(f(n)) (ou seja, n!=Ω(2n)), pois a função exponencial é assintoticamente menor que a função fatorial.

Em outras palavras, a alternativa correta é a D.

Mais questões

Se você deseja mais questões resolvidas do POSCOMP 2019, acesse a tag Questões do POSCOMP 2019.

Agora, se você procura questões, gabaritos e caderno de questões de outras edições, então acesse a página POSCOMP.

Resolverei as questões conforme o tempo permitir e de acordo com os meus conhecimentos. Como eu não sei resolver todas as questões, recomendo que você consulte também o gabarito oficial do exame.

Sugestões de livros para estudantes de computação na Amazon (patrocinado): Lista de Livros

Obrigado pela leitura! Se você puder, considere apoiar financeiramente o Blog Cyberini, Chave Pix: cyberpix9@gmail.com

Doar com PayPal

Siga o blog

Redes sociais: Facebook, Twitter, YouTube, Pinterest, Instagram, Telegram

Importante: utilize o bom senso na hora de comentar. Acesse a política de privacidade para maiores informações sobre comentários.

Nenhum comentário:

Postar um comentário

Este site usa cookies para fornecer serviços, analisar o tráfego e exibir publicidade personalizada, conforme a nossa política de privacidade. Seus dados, como IP e user agent, são compartilhados com nossos parceiros (como o Google). Saiba Mais

RecusarAceitar