Como gerar números aleatórios em c programação

Uma função matemática na programação C que é relativamente fácil de entender é a função rand (). Ele gera números aleatórios. Embora isso pode parecer bobagem, é a base para quase todos os jogos de computador já inventado. números aleatórios são um grande negócio na programação.

Um computador não pode gerar números verdadeiramente aleatórios. Em vez disso, ele produz o que é conhecido como pseudo-números aleatórios. Isso porque as condições dentro do computador pode ser replicado. Portanto, os matemáticos sérios zombam que qualquer valor de um computador chama aleatório não é um número verdadeiramente aleatório. você pode ouvi-los escárnio?

Como gerar números aleatórios

A função rand () é o mais simples de funções de número aleatório de C. Ele requer o arquivo de cabeçalho stdlib.h, e tosse um valor int que é supostamente aleatória. Agora, isso é aleatório demonstra código de exemplo.

Video: Gerando Valores Aleatórios com Linguagem C

Agora, isso é RANDOM

#include #include int main () {int r, A, B: coloca ("100 Números Aleatórios") -para (a = 0-alt; 20-A ++) {para (b = 0-blt; 5-b ++) {r = rand () - printf ("% dt", R) -} putchar ( `n`) -} retorno (0) -}

Agora, isso é aleatório usa um laço for aninhado para exibir 100 valores aleatórios. A função rand () na linha 13 gera os valores. A função printf () na linha 14 exibe os valores usando o caractere de conversão% d, o qual mostra valores int.

Exercício 1: Criar um novo projeto usando o código-fonte apresentado na Agora, isso é aleatório. Criar e executar a contemplar 100 valores aleatórios.

exercício 2: Modificar o código de modo a que todos os valores apresentados são no intervalo de 0 a 20.

Video: C# Como Gerar Números Aleatórios

Aqui vai uma dica para agora, isso é aleatória: Use o operador de atribuição de módulo para limitar o alcance dos números aleatórios. O formato é semelhante a este:

r% =n-

r é o número retornado da função rand (). % = É o operador de atribuição módulo. n é o limite do intervalo, mais 1. Após a instrução anterior, os valores voltaram estão no intervalo de 0 a n-1. Então, se você deseja gerar valores entre 1 e 100, você usaria a seguinte fórmula:

valor = (r% 100) + 1-

Como aumentar a aleatoriedade da numbersin de programação C

Só para lhe dar algum crédito aos matemáticos esnobes que afirmam que os computadores gerar números pseudo-aleatórios, execute o programa que você gerada a partir de Exercício 2. Observe a saída. Execute o programa novamente. Ver nada familiar?

A função rand () é bom para a geração de uma série de valores aleatórios, mas são valores previsíveis. Para tornar a saída menos previsível, você precisa semente o gerador de número aleatório. Isso é feito usando a função srand ().



Como a função rand (), a função srand () requer o cabeçalho stdlib.h, mostrada na linha dois em ainda mais aleatoriedade. A função requer um valor unsigned int, semente, que é declarada na linha 6. A função scanf () na linha 10 lê o valor assinado, utilizando o espaço reservado% u. Então, a função srand () usa o valor de semente na Linha 11.

AINDA MAIS RANDOMNESS

#include #include int main () {unsigned int semente-r, a, b-printf ("Introduza um aleatória semente do número: ") -scanf ("%você",&sementes) -srand (semente) -para (a = 0-alt; 20-A ++) {para (b = 0-blt; 5-b ++) {r = rand () - printf ("% dt", R) -} putchar ( `n`) -} retorno (0) -}

A função rand () é utilizado na Linha 16, embora os resultados baseiam-se agora sobre a semente, que é definida quando o programa é executado.

Exercício 3: Criar um novo projeto usando o código-fonte apresentado na ainda mais aleatoriedade. Construa. Execute o programa algumas vezes, tentando valores diferentes de sementes. A saída é diferente a cada vez.

Infelizmente, os valores aleatórios que são gerados são ainda previsível quando você digita o mesmo número de sementes. Na verdade, quando o valor 1 é usado como a semente, você vê os mesmos valores “aleatórios” você viu no Exercício 1, quando você nem sequer usar srand ()!

Video: Curso de Java - Aula 34 - Números Aleatórios - eXcript

Tem que haver uma maneira melhor.

A melhor maneira de escrever um gerador de números aleatórios não é pedir que o usuário digite uma semente, mas sim para buscar uma semente de outro lugar. Em mais verdadeiramente aleatória do que nunca, o valor de semente é puxado a partir do relógio do sistema usando a função time ().

MAIS verdadeiramente aleatório DO QUE NUNCA

#include #include #include int main () {int r, a, b-srand ((unsigned tempo) (nulo)) -, por (a = 0-alt; 20-A ++) {para (b = 0-blt; 5-b ++) {r = rand () - printf ("% dt", R) -} putchar ( `n`) -} retorno (0) -}

A função time () retorna informações sobre a hora atual do dia, um valor que está em constante mutação. O argumento NULL ajuda a resolver alguns problemas, mas o tempo () retorna um valor constante mudança.

Video: Preencher vetor aleatoriamente em C

A parte (unsigned) do mapa garante que o valor devolvido pela função de tempo () é um número inteiro não assinado. Essa é uma técnica conhecida como typecasting.

A linha inferior é que a função srand () é passado um valor de semente, cortesia da função time (), eo resultado é que a função rand () gera valores que são mais aleatória do que você deseja obter de outra forma.

Exercício 4: Digite o código-fonte do mais verdadeiramente aleatória do que nunca e construir o projeto. Executá-lo algumas vezes para garantir que os números são tão aleatório como o computador pode obtê-los.


Publicações relacionadas