Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FCM 2022

Algoritmos e Estrutura de DadosAlgoritmos
Código
gp036815
Banca
FCM
Órgão
IF-BA
Ano
2022
Cargo
Professor PEBTT - Ciência da Computação
Considere uma função com comportamento assintótico O(n5). Se para uma entrada de tamanho 10 otempo de execução desta função é de 0.1 segundos,para uma entrada de tamanho 40 o tempo de execução será de
  1. A3,2 segundos.
  2. B24,3 segundos.
  3. C1,7 minutos.
  4. D5,2 minutos.
  5. E13 minutos.
Revelar gabarito e comentário

GabaritoC — 1,7 minutos.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Análise de Complexidade Assintótica

Gabarito: letra C. O tempo de execução para uma entrada de tamanho 40 será de 1,7 minutos, pois a função tem comportamento O(n5)O(n^5). Para n=10n=10, o tempo é 0.1s0.1s, então a constante cc é 0.1/(105)=106s0.1 / (10^5) = 10^{-6}s. Para n=40n=40, o tempo é c405=106102.400.000=102,4c \cdot 40^5 = 10^{-6} \cdot 102.400.000 = 102,4 segundos, que equivalem a 102,4/601,7067102,4 / 60 \approx 1,7067 minutos, ou seja, 1,7 minutos.

A questão testa o entendimento de que, em complexidade assintótica, o tempo de execução escala proporcionalmente à função de crescimento (no caso, n5n^5), e não linearmente. O erro comum é multiplicar o tempo base pelo fator de aumento do tamanho da entrada (4 vezes), o que daria 0,4s0,4s, ou considerando um expoente errado.

Alternativa A — ❌ Incorreta

3,2 segundos. Esse valor seria obtido se a complexidade fosse O(n4)O(n^4) para um fator de escala 44=2564^4 = 256, multiplicando 0,1×256=25,6s0,1 \times 256 = 25,6s, ou ainda um cálculo incorreto de 40540^5 (como 405=1.024.00040^5 = 1.024.000?) levando a 1.024.000×106=1,024s1.024.000 \times 10^{-6} = 1,024s??? Não corresponde a nenhum raciocínio direto. Possível erro: considerar 405=(4×10)5=45×105=1024×100000=102.400.00040^5 = (4 \times 10)^5 = 4^5 \times 10^5 = 1024 \times 100000 = 102.400.000, depois dividir por 10610^6 (ao invés de 10710^7) dando 10,24s10,24s ou algo assim. A alternativa está claramente errada.

Alternativa B — ❌ Incorreta

24,3 segundos. Provém de um equívoco na potência: talvez 0,1×43=0,1×64=6,4s0,1 \times 4^3 = 0,1 \times 64 = 6,4s ou 0,1×44=25,6s0,1 \times 4^4 = 25,6s (próximo a 24,3?). Ou então 0,1×243=24,3s0,1 \times 243 = 24,3s, onde 243 seria 353^5? Não procede. A banca insere esse distrator para confundir quem calcula 40540^5 errado ou usa 45=10244^5 = 1024 multiplicando por 0,10,1 sem a devida base decimal.

Alternativa C — ✅ Correta ⟵ GABARITO

1,7 minutos. Conforme o cálculo: 106×405=102,4s=1,7067min1,7min10^{-6} \times 40^5 = 102,4s = 1,7067min \approx 1,7min. Exato.

Alternativa D — ❌ Incorreta

5,2 minutos. Corresponde a aproximadamente 0,1×404=0,1×2.560.000=256.000s0,1 \times 40^4 = 0,1 \times 2.560.000 = 256.000s? Não. Na verdade, 5,2min=312s5,2min = 312s. Se c405=102,4sc \cdot 40^5 = 102,4s, para chegar a 312s o expoente seria maior que 5, ou a constante maior. Possível: confundir n5n^5 com n6n^6 resultaria em 106406=4096s68min10^{-6} \cdot 40^6 = 4096s \approx 68min, longe. Então é um distrator aleatório.

Alternativa E — ❌ Incorreta

13 minutos. 13min=780s13min = 780s. Também não corresponde a nenhum expoente simples. Se fosse O(n4)O(n^4), 404=2.560.00040^4 = 2.560.000, c2.560.000=2,56sc \cdot 2.560.000 = 2,56s; se O(n6)O(n^6), 406=4.096.000.00040^6 = 4.096.000.000, c4.096.000.000=4096s=68,27minc \cdot 4.096.000.000 = 4096s = 68,27min. Então 13min está entre esses, sem justificativa.

NÃO CAIA NESSA!

A principal armadilha é achar que o tempo cresce linearmente com o tamanho da entrada (ex.: 0,1×4=0,4s0,1 \times 4 = 0,4s) ou que o expoente 5 se aplica apenas ao fator 4 (45=10244^5 = 1024, resultando em 102,4s102,4s — esse valor é correto, mas muitos esquecem de converter para minutos ou confundem a notação de potência). Lembre-se: em O(nk)O(n^k), o tempo escala com fatorkfator^k, e a constante é determinada por um ponto conhecido. A conversão para minutos é o passo final.

Tempo para n=40=0,1105×405=106×102.400.000=102,4 segundos=1,7067 minutos1,7 min\text{Tempo para } n = 40 = \frac{0,1}{10^5} \times 40^5 = 10^{-6} \times 102.400.000 = 102,4 \text{ segundos} = 1,7067 \text{ minutos} \approx 1,7 \text{ min}

Link permanente: /questoes/gp036815