Boost图形库,鄂尔多斯仁义生成器。图总是有相同数量的边
我正在尝试使用boost图形库生成鄂尔多斯仁义图 在下面的代码中,它取自 网络始终具有相同数量的边(对于特定的p值,它们不应具有相同数量的边)。我尝试过使用不同的随机种子,但没有效果 谢谢你的帮助Boost图形库,鄂尔多斯仁义生成器。图总是有相同数量的边,boost,network-programming,graph-theory,boost-graph,random-seed,Boost,Network Programming,Graph Theory,Boost Graph,Random Seed,我正在尝试使用boost图形库生成鄂尔多斯仁义图 在下面的代码中,它取自 网络始终具有相同数量的边(对于特定的p值,它们不应具有相同数量的边)。我尝试过使用不同的随机种子,但没有效果 谢谢你的帮助 #include <boost/graph/adjacency_list.hpp> #include <boost/graph/erdos_renyi_generator.hpp> #include <boost/random/linear_congruential.h
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/erdos_renyi_generator.hpp>
#include <boost/random/linear_congruential.hpp>
#include <iostream>
using namespace std;
typedef boost::adjacency_list<> Graph;
typedef boost::sorted_erdos_renyi_iterator<boost::minstd_rand, Graph> ERGen;
int main()
{
boost::minstd_rand gen;
// Create graph with 100 nodes and edges with probability 0.05
Graph g(ERGen(gen, 100, 0.05), ERGen(), 100);
cout << num_edges(g)<<endl;
return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
typedef boost::邻接列表图;
typedef boost::sorted_erdos_renyi_iterator ERGen;
int main()
{
推进:明特德·兰特发电厂;
//创建具有100个节点和边的图,概率为0.05
图g(ERGen(gen,100,0.05),ERGen(),100);
cout您应该使用随机种子:
boost::minstd_rand gen(std::random_device{}());
PRNG的本质是从给定状态生成确定性输出
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/erdos_renyi_generator.hpp>
#include <boost/random/linear_congruential.hpp>
#include <iostream>
#include <random>
using namespace std;
typedef boost::adjacency_list<> Graph;
typedef boost::sorted_erdos_renyi_iterator<boost::minstd_rand, Graph> ERGen;
int main() {
boost::minstd_rand gen(std::random_device{}());
// Create graph with 100 nodes and edges with probability 0.05
Graph g(ERGen(gen, 100, 0.05), ERGen(), 100);
cout << num_edges(g) << endl;
}
515
491
518
511