Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Lógicas de Programação — FGV 2018

Algoritmos e Estrutura de DadosLógicas de Programação
Código
fg032582
Banca
FGV
Órgão
MPE-AL
Ano
2018
Nível
Superior
Cargo
Analista do Ministério Público - Administrador de Rede
Paulo propôs a Rodrigo um jogo, no qual Paulo escolhe um número entre 1 e 32 que Rodrigo deve tentar adivinhar. A cada palpite de Rodrigo, Paulo dá uma pista, dizendo se o palpite é igual, maior ou menor que o número escolhido. Se for igual o jogo é encerrado.Assinale a opção que indica o número máximo de palpites que Paulo necessitaria até anunciar o número sorteado.
  1. A4
  2. B6
  3. C8
  4. D16
  5. E32
Revelar gabarito e comentário

GabaritoB — 6

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”.

Busca binária: número máximo de palpites

Gabarito: letra B (6). No jogo em que um número entre 1 e 32 deve ser adivinhado com dicas de "maior" ou "menor", a estratégia ótima é a busca binária. O número máximo de palpites necessários no pior caso é dado por log2N+1\lfloor \log_2 N \rfloor + 1, onde N=32N = 32. Como log232=5\log_2 32 = 5, temos 5+1=65 + 1 = 6 palpites. Uma tentativa a menos (5) só seria suficiente se o palpite exato pudesse ser encontrado sem contar a última confirmação, o que não ocorre no pior cenário.

O problema testa o entendimento de busca binária e a diferença entre o número de divisões e o número de palpites. Com 32 elementos, a busca binária divide o intervalo 5 vezes, mas exige 6 palpites no pior caso (por exemplo, quando o número é 1 ou 32).

  1. 1Dividir intervalo ao meio
  2. 2Comparar palpite
  3. 3Descartar metade errada
  4. 4Repetir até acertar
  5. 5Total: 6 palpites
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que o máximo é 4 palpites. Com 4 palpites, no pior caso só é possível distinguir 24=162^4 = 16 números, insuficiente para cobrir 32 números. O cálculo correto mostra que são necessários 6.

Alternativa B — ✅ Correta ⟵ GABARITO

Busca binária:

Número de palpites no pior caso = log2N+1\lfloor \log_2 N \rfloor + 1.

Para N=32N = 32: log232+1=5+1=6\lfloor \log_2 32 \rfloor + 1 = 5 + 1 = 6.

Exemplo: se o número for 32, os palpites podem ser 16, 24, 28, 30, 31, 32 — 6 tentativas. Se for 1, 16, 8, 4, 2, 1 — também 6.

Alternativa C — ❌ Incorreta

Propõe 8 palpites. Esse número seria necessário para um intervalo maior (28=2562^8 = 256), muito acima de 32. O valor correto é 6.

Alternativa D — ❌ Incorreta

Indica 16 palpites. Isso corresponderia a log216=4\log_2 16 = 4 divisões? Na verdade, 16 palpites seriam suficientes para 2162^{16} números, não para 32. É um distrator que confunde o tamanho do intervalo com o logaritmo.

Alternativa E — ❌ Incorreta

Sugere 32 palpites, que é a busca linear (um palpite por número). A presença das pistas "maior" e "menor" permite uma estratégia muito mais eficiente (busca binária), reduzindo o máximo para 6.

NÃO CAIA NESSA!

A confusão comum é pensar que o número de palpites é simplesmente log232=5\log_2 32 = 5, mas isso conta apenas as divisões do intervalo. No pior caso, você só acerta no último palpite, então são necessários log2N+1\log_2 N + 1 palpites. Lembre-se: para NN potência de 2, o número máximo de tentativas é k+1k+1, onde 2k=N2^k = N.

Gabarito: letra B (6 palpites).

Link permanente: /questoes/fg032582