GeraProva GeraProva Provas com IA para professores do Brasil
Computação1ª sérieBNCC EM13CO03Fácil⏱ medio

Em um projeto de programação que embaralha uma lista de nomes usando um algoritmo que chama rand()…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO03

Identificar o comportamento dos algoritmos no que diz respeito ao consumo de recursos como tempo de execução, espaço de memória e energia, entre outros.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Em um projeto de programação que embaralha uma lista de nomes usando um algoritmo que chama rand() repetidamente, por que é importante inicializar a semente do gerador de números aleatórios com um valor variável (por exemplo, tempo atual) antes do embaralhamento?

  1. A) Para garantir sequências diferentes entre execuções; semear com um valor variável evita a mesma ordem determinística.
  2. B) Inicializar com um número aleatório garante menos repetições na lista.
  3. C) O algoritmo rand() não precisa de semente para funcionamento correto.
  4. D) Usar sempre o mesmo valor de semente melhora a aleatoriedade.
  5. E) Sementes fixas geram números aleatórios únicos a cada execução.

✅ Resposta correta: alternativa A

Resolução passo a passo

  1. O gerador de números pseudoaleatórios, como o rand() da linguagem C, é determinístico: ele produz sempre a mesma sequência de números a partir de um mesmo estado inicial, chamado semente.
  2. Se a semente for fixa, por exemplo 1, toda execução do programa começa do mesmo estado e gera exatamente os mesmos valores na mesma ordem. Assim, o embaralhamento da lista de nomes produziria sempre a mesma permutação.
  3. Ao inicializar a semente com um valor variável, como o tempo atual, cada execução parte de um estado diferente, e portanto as sequências geradas e o embaralhamento resultante tendem a ser diferentes entre execuções. Esse é o motivo pelo qual a alternativa A está correta e coincide com o gabarito oficial.
  4. Por que as outras estão erradas:
  5. B) Usar um número aleatório como semente não reduz repetições na lista; o embaralhamento apenas reordena os nomes, sem eliminar elementos repetidos.
  6. C) O rand() depende de semente para produzir sequências diferentes; sem inicialização, em C o comportamento padrão equivale a usar semente 1, o que gera sempre a mesma sequência.
  7. D) Usar sempre o mesmo valor de semente faz o gerador repetir a mesma sequência, o que piora a variedade dos resultados, e não a melhora.
  8. E) Sementes fixas geram sempre a mesma sequência, não números únicos a cada execução; a imprevisibilidade entre execuções vem justamente da semente variável.
  9. Observação: o rand() gera pseudoaleatoriedade, não aleatoriedade verdadeira. Para aplicações de segurança, deve-se usar geradores criptográficos, mas para o contexto da questão a semente variável é o ponto central.

💡 Dica: Considere a importância da aleatoriedade em algoritmos.

Alternativa por alternativa

A Correta

Geradores de números pseudoaleatórios produzem a mesma sequência a partir da mesma semente. Inicializar a semente com um valor variável (como o timestamp) altera o estado inicial do algoritmo e produz permutações diferentes em execuções distintas.

B Erradaerro: Conceituala que mais engana

O aluno acredita que a semente aleatória controla a quantidade de repetições dos nomes na lista, confundindo embaralhar (reordenar) com eliminar duplicatas.

Por que engana: O aluno pode confundir a importância de usar uma semente variável com a ideia de que qualquer número aleatório é suficiente para garantir aleatoriedade nas execuções.

C Erradaerro: Conceitual

O aluno supõe que o rand() funciona sempre corretamente sem qualquer inicialização, ignorando que a semente define a sequência gerada.

D Erradaerro: Senso comum

O aluno pensa que repetir a mesma semente aumenta a imprevisibilidade, quando na verdade ela reproduz exatamente a mesma sequência de valores.

E Erradaerro: Conceitual

O aluno entende que sementes fixas produzem valores diferentes a cada execução, invertendo a relação entre semente e determinismo do gerador.

Raio-X da questão

Dificuldade Fácil
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

gerador de números aleatórios

📌 Objetivo

diagnostico

🧱 Pré-requisitos

gerador de números aleatórios · algoritmos de programação

📚 Reveja

Revisar como funciona a inicialização de sementes em algoritmos aleatórios.

⚠️ Erro mais comum

O aluno pode confundir a importância de usar uma semente variável com a ideia de que qualquer número aleatório é suficiente para garantir aleatoriedade nas execuções.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.