Hello, I am writing a C ++ simulation and I have to generate some random numbers. For this, I initialize (srand (time (NULL)) once only and I have a method as follows:
void Supermercado::geraTempoProximoCliente() {
int intervaloProximoCliente = rand()%(2*tempoMedioChegada-1) +1;
printf("Intervalo para chegar outro cliente %d\n",intervaloProximoCliente);
tempoChegadaProximoCliente = getRelogio() + intervaloProximoCliente;
}
Can anyone tell me why every time my program generates a new interval, is it always the same throughout the program? Constructor where seed is generated:
Supermercado::Supermercado(string nome_,int tempoSimulacao_,inttempoMedioChegada_,
int numeroDeCaixas_, int tamanhoMaximoDasFilas, Caixa caixas[]) {
listaDeCaixas = new CircularList<Caixa>();
tempoMedioChegada = tempoMedioChegada_;
relogio = 0;
clientesDesistentes = 0;
valorDesistentes = 0;
numeroDeCaixas = numeroDeCaixas_;
tempoSimulacao = tempoSimulacao_;
tempoChegadaProximoCliente = 0;
srand(time(NULL));
for(int i = 0; i < numeroDeCaixas; i++)
listaDeCaixas -> push_back(caixas[i]);
}
I instantiate the supermarket once just in the main and call the execute method of it.
The execute method:
void Supermercado::executa() {
bool continua = true;
Caixa caixa;
geraTempoProximoCliente();
while(relogio != tempoSimulacao*3600) {
if(relogio == tempoChegadaProximoCliente)
geraTempoProximoCliente();
}
relogio++;
}