5
respostas

Não entendi o random.seed e por que do 19

Bom dia.

Não entendi o random.seed e por que do resultado sempre ser 19

>>> random.seed(100)
>>> random.randrange(1, 101)
19
5 respostas

Israel, tudo bom?

Pq vc definiu um seed (semente). Sempre que definimos esse parâmetro o resultado se repete. Isso é utilizado quando queremos testar alguma hipótese e precisamos que os dados sejam gerados de forma aleatória, mas iguais para comparação de resultados.

Se você gerar uma lista ela será aleatória, mas se tiver o seed fixado a lista sempre será a mesma. Por isso, se quiser um novo número aleatório sempre que rodar o programa não defina um seed.

Espero ter ajudado e não esqueça de marcar uma resposta como solução.

Obrigado, Entendi mais ou menos, mas ok.

Israel, pensa assim...

Vamos imaginar a geração de números aleatórios sem uma semente (seed) geradora. Então quando usamos o método para gerar ele vai fazer assim:

1ª Vez

[3,4,9]

2ª Vez

[1,6,3]

3ª Vez

[4,1,5]

Nª Vez

[0,9,7]

Se eu definir uma semente as n vezes que eu rodar meu método as n vezes o resultado será o mesmo:

[3,4,9]

A semente é a base para a geração. Sem o seed essa base é sempre sorteada (aleatória) e vai ser diferentes, com o seed essa base é fixada o sorteio sempre será repetido.

Obrigado, entendi o raciocinio, mas fiquei com dúvida no que você falou na resposta anterior :

Isso é utilizado quando queremos testar alguma hipótese e precisamos que os dados sejam gerados de forma aleatória, mas iguais para comparação de resultados.

Poderia dar um exemplo?

Quando, por exemplo, eu quero testar uma hipóteses para algoritmos diferentes. Durante meus testes eu preciso que sejam gerados números aleatórios, mas eles têm que ser os mesmos para que eu possa comparar a performance dos algoritmos com aqueles números. Quando eu subir para a produção tiro o seed e vida que segue.

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