Como usar a função srand em c ++

Como usar a função srand em c ++

Neste artigo, discutiremos como podemos usar a função srand () em C ++ ao escrever programas no Ubuntu 20.04. A função srand () é a semente que a função rand () usa para gerar números aleatórios. Ambas as funções são definidas no cabeçalho do stdlib. Como usamos a função srand () para definir a semente na função rand (), ela está vinculada à função rand (). A função srand () leva o valor da semente em um tipo inteiro não assinado. O valor da semente é o local de partida para a geração de números aleatórios da função RAND (), por exemplo, Srand (5). Nenhum valor é retornado pela função srand (). O valor padrão da semente da função srand é definido como "1". Portanto, se não chamarmos a função srand () antes da função rand (), será a mesma que escrever "srand (1)".

Compreendendo a relação entre rand () e srand () função:

Quando usamos a função rand () em nosso código, sempre obtemos o mesmo número aleatório sempre que compilamos. Vejamos um exemplo em que entenderemos melhor como a função rand funciona sem srand ().

Usando Rand () Função sem a função srand () no Ubuntu 20.04:

Abra o terminal e faça um .Arquivo CPP escrevendo e executando o comando "Touch" com o nome do arquivo e extensão de .cpp. Em seguida, localize e abra seu .Arquivo CPP. Agora escreva um código simples para gerar números aleatórios sem usar a função srand ().

O arquivo deve ser salvo e depois fechado. Abra o terminal novamente e compile o arquivo com este comando "g ++" junto com o nome do arquivo e a extensão. Isso gerará uma saída para o seu arquivo após a compilação, geralmente com a extensão de “.fora.”Agora execute o arquivo de saída escrevendo este comando“./”Junto com seu nome de arquivo de saída

Como você pode ver no exemplo acima, a primeira e a segunda saídas são as mesmas porque não usamos a função srand (). Portanto, mesmo se repetirmos o processo várias vezes, a saída será a mesma porque o valor da semente é por padrão definido como 1.

Veremos como a função rand () funcionará com a função srand ().

Rand () Função com o uso da função srand () no Ubuntu 20.04:

Abra o terminal e faça um .Arquivo CPP escrevendo e executando o comando "Touch" com o nome do arquivo e extensão de .cpp. Em seguida, localize e abra seu .Arquivo CPP. Agora escreveremos um código para gerar números aleatórios e usar a função srand () com diferentes valores de sementes.

O arquivo deve ser salvo e depois fechado. Abra o terminal novamente e compile o arquivo com este comando "g ++" junto com o nome do arquivo e a extensão. Isso gerará uma saída para o seu arquivo após a compilação, geralmente com a extensão de “.fora.”Agora execute o arquivo de saída escrevendo este comando“./”Junto com seu nome de arquivo de saída.

Agora, podemos ver que o uso da função srand () com diferentes valores de sementes fornece um número aleatório diferente. Portanto, se continuarmos alterando o valor da semente que é o parâmetro da função srand (), os números aleatórios sempre serão diferentes um do outro. O valor da semente é definido como "1" na primeira linha de saída; portanto, o número aleatório gerado por esse valor de semente é 1804289383 e, quando alteramos o valor da semente para 5, o número aleatório gerado agora é alterado para 590011675; A mudança aconteceu por causa da diferença no valor da semente.

Depois de analisar este exemplo, podemos concluir que a função rand () sem a função srand () não executa até o padrão do programa PRNG (pseudo -número aleatório de números), que gera números aleatórios de acordo com o credenciamento do valor da semente, Na linguagem C ++. Este programa inclui as funções rand () e srand () para gerar números aleatórios na programação C ++. Portanto, devemos sempre usar a função srand () enquanto estiver usando a função rand () para gerar números aleatórios distintos.

O número srand () com diferentes valores de sementes continua alterando os números aleatórios gerados, tornando a função rand () mais eficiente. Mas devemos continuar mudando o valor da semente sempre que o valor da semente deve ser dado antes de chamar a função rand (). Portanto, a melhor maneira de continuar fazendo isso é usar a função de tempo (0), que dá o tempo exato em segundos na forma inteira não assinada da mesma forma que o parâmetro da função srand (). Portanto, a saída do tempo (0) sempre continuará mudando e, portanto, a saída da função rand () também continuará mudando a cada segundo.

Usando o função srand () com o tempo (0) como o parâmetro:

Como discutimos anteriormente, o valor da semente da função é definido como "1", então devemos alterar o valor da semente constantemente e antes que a função rand () seja chamada. Esses pontos são vitais para a eficiência de gerar funções aleatórias, por isso temos que pensar em tal maneira que reduz o processo de pensamento do codificador e o poder de processamento do dispositivo também. Esse problema é resolvido pela função Time () na linguagem C ++, que dá o tempo exato no momento em que você está executando a tarefa em seu dispositivo, também conhecido como carimbo de hora. Portanto, se adicionarmos a função de tempo (0) como o parâmetro da função srand (), que é o seu valor de semente, ele dará o tempo total em segundos como um número inteiro à função srand () e continuará mudando em cada tempo nós o usamos. A função Time () é definida no cabeçalho Ctime, então teremos que adicionar isso em nosso código. Agora, implementaremos isso em nosso código e tentaremos entender melhor como a função srand () funciona com a função time () como seu parâmetro.

Usando a função srand () com função de tempo como seu parâmetro no Ubuntu 20.04:

Abra o terminal e faça um .Arquivo CPP escrevendo e executando o comando "Touch" com o nome do arquivo e extensão de .cpp. Em seguida, localize e abra seu .Arquivo CPP. Agora escreveremos um código para gerar números aleatórios e usar a função Time () para fornecer diferentes valores de sementes para números gerados aleatoriamente distintos.

O arquivo deve ser salvo e depois fechado. Abra o terminal novamente e compile o arquivo com este comando "g ++" junto com o nome do arquivo e a extensão. Isso gerará uma saída para o seu arquivo após a compilação, geralmente com a extensão de “.fora.”Agora execute o arquivo de saída escrevendo este comando“./”Junto com seu nome de arquivo de saída

Como podemos ver que, depois de executar os arquivos várias vezes, o número aleatório está mudando a cada execução, por isso alcançamos a eficiência por esse método, e continuaremos obtendo valores diferentes toda vez que executamos a função srand () com o tempo ( 0) como seu parâmetro.

Conclusão:

Neste artigo, aprendemos a relação entre a função rand () e srand () e como a função srand () ajuda a função rand () a gerar números aleatórios com eficiência pelo uso da função do tempo (). Implementamos todos esses exemplos desses conceitos no Ubuntu e demos uma elaboração detalhada e passo a passo sobre como executá -los no Ubuntu 20.04.