我使用 boost::random 生成遵循均匀分布的随机变量。
boost::mt19937 gen(2014/*time(NULL)*/);
boost::uniform_real<> dist(0, 1);
boost::variate_generator<boost::mt19937&, boost::uniform_real<> > random(gen, dist);
有了这个变量,我在每个不同的实验中统一选择不同的起始图节点。
for(unsigned int i=0; i < numQueries; i++)
{
//source node id
sourceID = (unsigned int) ( 1 + random() * G.getNumNodes());
//...
}
但是我需要一种在程序的每次不同运行中以不同方式初始化种子的方法,因为我现在在每次不同的运行中都得到相同的起始节点序列。