Ir para conteúdo
Fórum Script Brasil
  • 0

Geração De Números Aleatórios


Guest myks

Pergunta

Como faço para gerar uma coleção de números aleatórios de uma vez só?? Tentei usar a semente baseada no tempo, e deixei o comando dentro de um Loop. Mas como o programa roda em menos de um segundo, ele usa a mesma semente e ta gerando um coleção de números iguais.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

amigão esse conjunto de funções irá te ajudar....

da uma olhada!!!!!!!

#include <stdio.h>
#include <stdlib.h>

int main()
{
     int i;
        
     // inicializar o gerador de números aleatórios 
     srand(time(NULL));
     for (i=0; i<10; i++)
     {
           //para gerar números aleatórios de 0 a 50 */
           printf("%d ", rand() % 50);
      }
      return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

#include <stdio.h>
#include <stdlib.h>

int main()
{
     int i;
     int vetor[10];
        
     // inicializar o gerador de números aleatórios 
     srand(time(NULL));
     for (i=0; i<10; i++)
     {
           //para gerar números aleatórios de 0 a 50 */
           vetor[i] = rand() % 50;
      }
      return 0;
}

assim: (kandrade, não me processe por plagio. wink.gif )

Link para o comentário
Compartilhar em outros sites

  • 0

Só um pincelada básica:

A função rand() gera números aleatórios. Se você quiser um faixa, por exemplo, número aleatórios de 0 a 9, você usa:

int aleatorio ;

aleatorio = rand() % 9 ;

Veja, é a função rand() módulo 9 que indica que se deve gerar números somente entre 0 a 9.

Agora, vamos supor que você abra seu programa umas 5 vezes diretas, nestas 5 vezes o programa gerou o mesmo número, como mudar isto? Use a funcao

srand(), que inicia o gerador de números aleatórios (como disse o kandrade e o plagiador ElrosElendil biggrin.gif ). O padrão e' usar: srand(time(NULL).

Sem mais!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Milton --

#include <stdio.h>
#include <stdlib.h>

int main()
{
     int i;
     int vetor[10];
        
     // inicializar o gerador de números aleatórios 
     srand(time(NULL));
     for (i=0; i<10; i++)
     {
           //para gerar números aleatórios de 0 a 50 */
           vetor[i] = rand() % 50;
      }
      return 0;
}

assim: (kandrade, não me processe por plagio. ;) )

Como seria de fosse de 0 a , sendo que seriam valores fracionários? tipo:

0,023

0,45

etc

Sendo q não poderia ser Zero!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Como seria de fosse de 0 a , sendo que seriam valores fracionários? tipo:

0,023

0,45

etc

Milton, faltou algo: "Como seria de fosse de 0 a ?????, ..."

até 1?

float num_rand_0_1;

num_rand_0_1 = rand() / (RAND_MAX *1.0);

RAND_MAX *1.0, tem como objetivo gerar um valor float para a operação;

rand() gera números entre 0 e RAND_MAX (que é 32767). Assim, se rand() gerar 0 você terá como resultado da divisão 0, bem como, se gerar 32767, o resultado será 1. Outros valores irão gerar os valores intermediários.

Sendo q não poderia ser Zero!
neste caso, acho que bastaria não permitir que o valor gerado seja 0.

Com o uso de random(int <valor max>) daria para contornar isto:

num_rand_0_1 = (random(RAND_MAX -1) +1) / (RAND_MAX *1.0);

random(RAND_MAX -1), gera um número entre 0 e 32766.

ao somarmos +1, passamos a gerar entre 1 e 32767. Com isto, qualquer valor dividido por RAND_MAX não irá gerar um 0 (zero).

Espero que seja isto.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Só um pincelada básica:

A função rand() gera números aleatórios. Se você quiser um faixa, por exemplo, número aleatórios de 0 a 9, você usa:

int aleatorio ;

aleatorio = rand() % 9 ;

Veja, é a função rand() módulo 9 que indica que se deve gerar números somente entre 0 a 9.

Agora, vamos supor que você abra seu programa umas 5 vezes diretas, nestas 5 vezes o programa gerou o mesmo número, como mudar isto? Use a funcao

srand(), que inicia o gerador de números aleatórios (como disse o kandrade e o plagiador ElrosElendil :D ). O padrão e' usar: srand(time(NULL).

Sem mais!

to com um problema igual esse, mas quero gerar numeros de 1 à 50, como faço?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...