samedi 15 avril 2017

C++ generate random number everytime

I need to make a simulator for a college homework. In this simulator there are 3 computers, 2 of which send messages to computer 1 which then decides to either send the message or reject it. The rejection is random chance with 20% of rejection on computer 2 and 50% on computer 3. I use the rand()%100+1 function with the srand(time(NULL)) seed. It makes a random number however I need to run this multiple times and every time the same random number is used. For example if I run the simulation 12 times and the number generated is 45, 45 is used 12 times. I've both placed the random number generator inside the code and made a function outside. How can you make a random number generator that generates a random number every time?

#include <iostream>
#include <new>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

using namespace std;

int randomgen()
{
int rndnum=0;
srand (time(NULL));
rndnum=rand()%100+1;
cout<< rndnum<<endl;
return rndnum;
}


struct comp1
{

int rejected=0; 
int received=0; 
int sent=0; 
int onhold=0; 


bool comp2reception()
{
    received++;
    bool result=false;
    int rndnum=0;
    srand (time(NULL));
    rndnum=rand()%100+1;

    if(rndnum<=20)
    {
        rejected++;
        result=false;
    }
    if(rndnum>=21)
    {
        onhold++;
        result=true;
    }
    return result;
}



bool comp3reception()
{
    received++;
    bool result=false;
    int rndnum=randomgen;

    if(rndnum<=50)
    {
        rejected++;
        result=false;
    }
    if(rndnum>=51)
    {
        onhold++;
        result=true;
    }
    return result;
}

};




Aucun commentaire:

Enregistrer un commentaire