Portugese:
Criei um código em C que preenche um vetor de tamanho de 999999, então eu preciso de um gerador de números aleatórios que sorteia números de 0 a 999999 e preencha esse vetor com números não repetidos. Estou usando a função RAND, mas ele aparenta ter um limite, que e 32767. Ja tentei usar srand (time(NULL)) para ver se o limite mudava, mas sem existo. Alguem sabe uma alternativa? Segue a baixo a parte do codigo.
English (courtesy Google):
I created a code in C that fills a vector of size 999999, so I need a random number generator that draws numbers from 0 to 999999 and fills that vector with numbers not repeated. I'm using the RAND function, but it appears to have a limit, which is 32767. I've tried using srand (time (NULL)) to see if the limit changes, but I do not exist. Does anyone know an alternative? Follow the part of the code below.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <string.h>
#define TAM 999999
srand (time(NULL));
int Cont=0,
Cont2;
//Verifica quantidade de arquivos que devem ser criados.
//Cria arquivos TXT com base nos dados de entrada. itoa
while(Cont<TAM){
List->vetor[Cont]=(int)rand() % TAM; //RAMDOM(VOID); CPLUSPLUS
//Checagem de numeros repetidos
Cont2=0;
while(Cont2<Cont){
if(List->vetor[Cont]==List->vetor[Cont2]){
//Printf exibe o numero que foi repetido, e as posição deles.
printf("%d = %d || Casa1:%d, Casa2:%d \n",List->vetor[Cont],List->vetor[Cont2],Cont,Cont2);
//Finaliza a checagem de numeros repetidos.
Cont2=Cont;
//Decrementa o Valor, fazendo ficar preso na mesmo casa e dando outro numero.
Cont--;
}
Cont2++;
}
Cont++;
}
Aucun commentaire:
Enregistrer un commentaire