Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

SEED como funciona?

Como funciona o SEED? É uma variável randomica que sempre gera os mesmos números? Como assim?

1 resposta
solução!

O gerador de números pseudoaleatórios precisa de um valor inicial para poder gerar novos números, e esse número nós chamamos de SEED.

Se nosso algoritmo não informar o qual número é esse, esse gerador irá pegar um valor do tempo do sistema operacional para ser o SEED ou de outra fonte de aleatoriedade que o sistema oferecer.

Sendo assim, quando executamos o algoritmo em momentos diferentes, esse gerador de números pseudoaleatórios começará com uma SEED diferente, e portanto as funções que utilizam ou fornecem números aleatórios terão também uma resposta diferente.

Se queremos que nosso programa tenha comportamento aleatório, porém igual em todas as vezes que o executarmos, precisamos iniciar essa SEED com um valor no nosso código.

Um exemplo pode deixar mais claro o entendimento. O exemplo abaixo é um código python executado no terminal:

>>> import random as r
>>> r.seed( 13 )
>>> print("Primeiro aleatorio  - ", r.randint(2, 40))
Primeiro aleatorio  -  18
>>> print("Segundo aleatorio  - ", r.randint(2, 40))
Segundo aleatorio  -  20
>>> r.seed( 13 )
>>> print("Primeiro aleatorio depois de definir SEED - ", r.randint(2, 40))
Primeiro aleatorio depois de definir SEED -  18
>>> print("Segundo aleatorio depois de definir SEED - ", r.randint(2, 40))
Segundo aleatorio depois de definir SEED -  20

Mudar o SEED é como "reiniciar" o random, para aquela versão. Isso é interessante por que o resultado que você obteve fica replicável. Ou seja, se você executar esse mesmo código que que coloquei acima, em sua máquina, você obterá o mesmo resultado que eu obtive na minha, em momentos diferentes.

Para entender como a linguagem utiliza esse valor do SEED para gerar uma enorme variedades de números que respeite alguns critérios de aleatoriedade, aí já é necessário uma explicação um pouco mais complexa, que não cabe nessa resposta.

Para mais informações, você pode dar uma olhada na documentação: https://docs.python.org/3/library/random.html