Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

O que é o numero dentro do parenteses em SEED?

No código abaixo, a função do número 11 dentro da função "seed(11)"?


from random import randrange, seed
def impressao_notas():
  notas_matematica = []
  nome_aluno = input('Digite o nome do aluno: ')
  seed(11)
  for notas in range(8):
    notas_matematica.append(randrange(0,11))
  print(f'O aluno {nome_aluno} teve as seguintes notas: {notas_matematica}')
impressao_notas()

Agradeço de puderem ajudar.

3 respostas
solução!

Olá, Thiago! Tudo bom?

A biblioteca random é uma biblioteca para geração de números aleatórios. E nós precisamos sim desses números para realizar vários experimentos. Mas acontece que em computação, o que se mais utiliza na verdade é uma lista de números pseudoaleatórios, isso significa que existe uma lista de números já gerados (preestabelecidos) que se comportam de maneira aleatória, mas na essência não são.

Quando nós utilizamos o seed() da biblioteca random e colocamos um número dentro dele, nós estamos selecionando o mesmo padrão de números aleatórios sempre. E por que fazemos isso? Simples! Porque nós queremos repetir o mesmo experimento :D

Existem códigos que avaliam algum modelo matemático ou realiza algo de maneira aleatória e que é desejável que os dados fossem analisados sempre com os mesmos números, para garantir que não foi algum tipo de fator sorte o experimento ter apresentado um bom ou mau resultado, e então assim ajustar o código conforme necessário.

E para finalizar, quando não especificamos nenhum número dentro da seed(), a biblioteca utiliza um número relacionado ao tempo (horário atual) do computador, e por isso sempre acessa listas distintas.

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado pela resposta Marcus! Foi muito esclarecedor, só fiquei com uma última dúvida: Qual a diferença de eu colocar 1 ou 8 ou qualquer outro número dentro de SEED()? Na simulação que fiz, fiquei com a impressão que o resultado final não se altera quando eu mudo, está correto?

O resultado deve aparecer diferente.

Para o seed(1), temos:

from random import randrange, seed
def impressao_notas():
  notas_matematica = []
  # nome_aluno = input('Digite o nome do aluno: ')
  nome_aluno = "Fulano_1"
  seed(1)
  for notas in range(8):
    notas_matematica.append(randrange(0,11))
  print(f'O aluno {nome_aluno} teve as seguintes notas: {notas_matematica}')
impressao_notas()

E a saída esperada toda vez que executarmos o código é:

> > > O aluno Fulano_1 teve as seguintes notas: [2, 9, 1, 4, 1, 7, 7, 7]

Para o seed(8), temos:

from random import randrange, seed
def impressao_notas():
  notas_matematica = []
  # nome_aluno = input('Digite o nome do aluno: ')
  nome_aluno = "Fulano_1"
  seed(8)
  for notas in range(8):
    notas_matematica.append(randrange(0,11))
  print(f'O aluno {nome_aluno} teve as seguintes notas: {notas_matematica}')
impressao_notas()

E a saída esperada toda vez que executarmos o código é:

> > > O aluno Fulano_1 teve as seguintes notas: [3, 5, 6, 2, 3, 0, 1, 2]

Temos que garantir o código foi executado desde o início e com os valores para a seed() sendo alterados.

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software