次のように、グラフにランダムなエッジを追加したいと思います。
#include <iostream>
#include <utility> // for std::pair
#include <algorithm>
#include <boost/graph/adjacency_list.hpp>
#include "boost/graph/topological_sort.hpp"
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graphviz.hpp>
int main()
{
using namespace std;
using namespace boost;
typedef adjacency_list< listS, vecS, undirectedS > undigraph;
int const N = read_int_from_user("Number of vertices: ");
undigraph g(N);
// add some edges, // #1
for (int i = 0; i != N; ++i)
{
for (int j = 0; j != N; ++j)
{
add_edge(i, j, g);
}
}
write_graphviz(cout, g);
}
次の行#1
はそれを行います。
しかし、ご覧のとおり、各頂点から 8 つのエッジが存在しますが、最大で 4 つだけにして、すべての頂点をランダムな方法で接続したいと考えています。どうすればそれを達成できますか?