Introdução ao gerador de números aleatórios em C

Para gerar a saída esperada, o programa deve precisar da entrada adequada. Normalmente, as entradas são fornecidas pelo usuário, mas às vezes o programa precisa escolher a entrada por si só. Por exemplo, para obter o registro de data e hora atual, o aplicativo usa uma função embutida para buscá-lo no sistema. Da mesma forma, às vezes precisamos que o aplicativo gere qualquer número aleatório que possa ser processado ainda mais para obter a suposta saída. Embora pareça aleatória para o usuário, a linguagem de programação nos oferece o mecanismo para definir o intervalo do número aleatório. Neste artigo, veremos a implementação do programa de geração de números aleatórios usando a linguagem de programação C. Vamos nos concentrar na função incorporada que é fornecida por C para gerar um número aleatório.

O que são funções de gerador de números aleatórios em C?

Existem várias abordagens para gerar o número aleatório usando qualquer linguagem de programação. Pode-se definir a função de sua própria maneira de estimar ou gerar o número aleatório enquanto houver funções embutidas em qualquer linguagem de programação que gere o número aleatório. Na linguagem de programação C, temos uma função chamada rand, que ajuda na geração do número aleatório. Esta função é predefinida em C e pode ser implementada no programa usando o arquivo de cabeçalho stdlib.h. O desenvolvedor precisa mencionar o arquivo de cabeçalho stdlib.h no início do programa para aproveitar a função rand. Sempre que essa função é chamada, ela gera um número totalmente aleatório. Com base no requisito, pode-se gerar o número que pertence ao tipo de dados inteiro, flutuante ou duplo. Pode ser simplesmente usado no programa usando a função rand ().

Embora a função rand deva gerar o valor aleatório, ela continua gerando o mesmo valor toda vez que o programa é executado e isso pode ocorrer devido ao valor constante da semente. Se o requisito é gerar o novo número aleatório toda vez que o programa é executado, precisamos garantir que a semente mude sempre que o programa for executado. Tempo é algo que continua mudando e também pode ser considerado como algo que pode ajudar a obter sempre um valor aleatório de semente e a usar o tempo no programa, temos que usar o arquivo de cabeçalho time.h.

Inteiros de Geração

A função rand () é usada para gerar um número aleatório. Toda vez que é chamado, fornece um número aleatório. Se os desenvolvedores adicionarem alguma lógica a ele, eles poderão gerar o número aleatório dentro de um intervalo definido e, se o intervalo não for definido explicitamente, retornará um valor inteiro totalmente aleatório. A função rand () em C pode ser usada para gerar o número aleatório e o número gerado está excluindo totalmente a semente. Uma semente é o valor usado pela função rand para gerar o valor aleatório. Se o valor inicial for alterado, o número gerado será renovado toda vez que o programa for compilado, caso contrário, retornará o mesmo valor toda vez que foi gerado quando o programa foi executado primeiro. Para gerar o Abaixo está o programa para gerar o número aleatório inteiro.

Programa

#include
#include
#include
int main()
(
int rand_num;
srand(time(0));
printf("The randomly generated number is”);
rand_num = rand();
printf("%d\n", rand_num);
)
)

Resultado:

O número gerado aleatoriamente é 1804289383.

Neste programa, usamos o arquivo de cabeçalho time.h, que é usado para aproveitar o tempo do sistema na geração do número aleatório. À medida que o tempo muda toda vez, o valor da semente muda sempre que o programa é executado, ajudando-nos a gerar um número aleatório toda vez que o programa é executado. Rand_num é a variável usada para armazenar um número gerado aleatoriamente. A função rand () gera um número aleatório que é atribuído à variável rand_num. Como não definimos explicitamente o valor de retorno do número aleatório, ele nos fornecerá um número inteiro.

Gerando números de ponto flutuante

A abordagem para gerar o valor de flutuação aleatória é semelhante à abordagem para gerar o número inteiro. A única diferença é que precisaremos definir explicitamente que o valor que estamos esperando da função rand deve ser um valor flutuante. O valor flutuante geralmente consome mais espaço no armazenamento em comparação com o int curto. O programa que escrevemos acima para geração de valor inteiro aleatório será o mesmo que escreveremos aqui. A única diferença será uma definição explícita do tipo de dados. Semelhante ao último programa, usamos o arquivo de cabeçalho time.h aqui também para permitir que ele contribua na geração aleatória de números flutuantes. Se esse arquivo de cabeçalho não estiver incluído no programa, ele fornecerá o mesmo valor toda vez que o programa. É executado. Abaixo está o programa para geração de valor flutuante aleatório.

Programa

#include
#include
#include
int main()
(
float rand_num;
srand(time(0));
printf("The randomly generated float number is ”);
rand_num = (float) rand();
printf("%f", rand_num);
)
)

Resultado:

Neste programa, usamos (float), que é usado para definir explicitamente que o valor retornado da função rand deve ser de natureza flutuante. Como a variável ran_num também é definida com um tipo de dados flutuante, ela poderá manipular o número flutuante, que geralmente possui seis dígitos após o ponto decimal, quando gerado na linguagem de programação C. Durante a impressão do valor flutuante, usamos% f, pois é algo que deve ser tratado ao imprimir o valor flutuante.

Conclusão

Para aumentar a aleatoriedade do número, é possível alavancar expressões matemáticas. Além disso, usando a lógica, também é possível definir o intervalo de números sob o qual eles desejam que o número seja gerado aleatoriamente. O recurso para gerar borracha aleatória é fornecido por todas as linguagens de programação e usado no aplicativo real com base nos requisitos. Para garantir a forte aleatoriedade do número, precisamos garantir que a função seed que rand seja usada para gerar o valor aleatório seja muito aleatória e nova toda vez que o programa for executado.

Artigos recomendados

Este é um guia para o Gerador de Números Aleatórios em C. Aqui discutimos a função, números inteiros de geração e números de ponto flutuante de geração em C. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Gerador de número aleatório em R
  2. O que é classe de modelo em C ++?
  3. Algoritmo Aleatório da Floresta
  4. Estruturas em Java
  5. O que é o gerador de números aleatórios em Python?
  6. Gerador de número aleatório em C ++ (exemplos com etapas)
  7. Gerador de número aleatório no Matlab
  8. Gerador de número aleatório em c #
  9. Gerador de número aleatório em JavaScript
  10. Gerador de número aleatório em PHP