在igraph C中随机删除边

时间:2017-09-20 14:35:01

标签: c igraph

  

如何在Igraph C中随机删除边?

我正在使用名为igraph的库。我在Windows上使用Cygwin

我试图从随机生成的网络(使用Erdos Renyi随机网络生成器生成的网络)中随机删除边缘。

在这方面,我将不胜感激。

code is referenced from a different post。不幸的是,该帖子上的问题也没有答案。

#include <stdio.h>
#include <igraph/igraph.h>

int main() {

int edgeCount=0;
igraph_t g;
igraph_vector_t v;

igraph_vector_t edges;
igraph_vector_init(&edges,0);

igraph_vector_t indices;
igraph_vector_init(&indices, 0);

igraph_erdos_renyi_game(&g, IGRAPH_ERDOS_RENYI_GNP, 500, .10,IGRAPH_UNDIRECTED, IGRAPH_NO_LOOPS); // Create a random graph

igraph_get_edgelist(&g, &edges, 0); // Put the graph's list of indices in "edges"
 int r = rand() % ((int)igraph_ecount(&g)); // Get a random edge index


igraph_vector_push_back(&indices, r); // create a vector of size 1 in which to put the random index found above

 igraph_delete_edges(&g, igraph_es_vector(&indices)); // Delete that edge

 return igraph_ecount(&g);
}

0 个答案:

没有答案