7
7
static std::map<unsigned long , CXXGRAPH::Node<int > *> generateRandomNodes (unsigned long numberOfNodes, int MaxValue)
8
8
{
9
9
std::map<unsigned long , CXXGRAPH::Node<int > *> nodes;
10
- srand ((unsigned )time (NULL ));
10
+ unsigned int randSeed = (unsigned int )time (NULL );
11
+ srand (randSeed);
11
12
int randomNumber;
12
13
for (auto index = 0 ; index < numberOfNodes; index ++)
13
14
{
14
- randomNumber = (rand_r (NULL ) % MaxValue) + 1 ;
15
+ randomNumber = (rand_r (&randSeed ) % MaxValue) + 1 ;
15
16
CXXGRAPH::Node<int > *newNode = new CXXGRAPH::Node<int >(std::to_string (index ), randomNumber);
16
17
nodes[index ] = newNode;
17
18
}
@@ -21,14 +22,15 @@ static std::map<unsigned long, CXXGRAPH::Node<int> *> generateRandomNodes(unsign
21
22
static std::map<unsigned long , CXXGRAPH::Edge<int > *> generateRandomEdges (unsigned long numberOfEdges, std::map<unsigned long , CXXGRAPH::Node<int > *> nodes)
22
23
{
23
24
std::map<unsigned long , CXXGRAPH::Edge<int > *> edges;
24
- srand ((unsigned )time (NULL ));
25
+ unsigned int randSeed = (unsigned int )time (NULL );
26
+ srand (randSeed);
25
27
int randomNumber1;
26
28
int randomNumber2;
27
29
auto MaxValue = nodes.size ();
28
30
for (auto index = 0 ; index < numberOfEdges; index ++)
29
31
{
30
- randomNumber1 = (rand_r (NULL ) % MaxValue);
31
- randomNumber2 = (rand_r (NULL ) % MaxValue);
32
+ randomNumber1 = (rand_r (&randSeed ) % MaxValue);
33
+ randomNumber2 = (rand_r (&randSeed ) % MaxValue);
32
34
CXXGRAPH::Edge<int > *newEdge = new CXXGRAPH::Edge<int >(index , *(nodes.at (randomNumber1)), *(nodes.at (randomNumber2)));
33
35
edges[index ] = newEdge;
34
36
}
@@ -38,14 +40,15 @@ static std::map<unsigned long, CXXGRAPH::Edge<int> *> generateRandomEdges(unsign
38
40
static std::map<unsigned long , CXXGRAPH::UndirectedEdge<int > *> generateRandomUndirectedEdges (unsigned long numberOfEdges, std::map<unsigned long , CXXGRAPH::Node<int > *> nodes)
39
41
{
40
42
std::map<unsigned long , CXXGRAPH::UndirectedEdge<int > *> edges;
41
- srand ((unsigned )time (NULL ));
43
+ unsigned int randSeed = (unsigned int )time (NULL );
44
+ srand (randSeed);
42
45
int randomNumber1;
43
46
int randomNumber2;
44
47
auto MaxValue = nodes.size ();
45
48
for (auto index = 0 ; index < numberOfEdges; index ++)
46
49
{
47
- randomNumber1 = (rand_r (NULL ) % MaxValue);
48
- randomNumber2 = (rand_r (NULL ) % MaxValue);
50
+ randomNumber1 = (rand_r (&randSeed ) % MaxValue);
51
+ randomNumber2 = (rand_r (&randSeed ) % MaxValue);
49
52
CXXGRAPH::UndirectedEdge<int > *newEdge = new CXXGRAPH::UndirectedEdge<int >(index , *(nodes.at (randomNumber1)), *(nodes.at (randomNumber2)));
50
53
edges[index ] = newEdge;
51
54
}
0 commit comments