Ho scritto il seguente codice per un grafo Erdos-Renyi:
- Codice:
void erdos_graph(void){
int i , j, connected[N], neighbour[N], matrix[N][N];
double value;
printf("\nErdos-Renyi Random Graph\n");
printf("\n");
for (i=0; i<N; i++){
for (j=0; j<N; j++){
matrix[i][j] = 0;
matrix[j][i] = 0;
}
}
srand((unsigned)time(NULL));
double prob=(rand()/(double)(RAND_MAX+1.));
int num_edges = 0;
for(i=0; i<N; i++){
connected[i]=0;
j=rand()%N;
if(i!=j){
matrix[i][j]=1;
neighbour[i]=j;
value=prob;
if(value>prob){
matrix[i][j]=0;
j=prob*N;
matrix[i][j]=1;
neighbour[i]=j;
}
}
if(i!=j){
matrix[i][j] = 1;
matrix[j][i] = 1;
num_edges++;
}
}
for(i=0; i<N;++i){
for(j=0; j<N; ++j){
printf("%d", matrix[i][j]);
}
printf("\n");
}
ma soltanto ora mi sono reso conto che il grafo è disconnesso. Potreste dirmi dove sto sbagliando?
Dovrei scrivere questo grafo/matrice all'interno di un file testo.
Spero possiate aiutarmi a capire dove sta l'errore.
Vi ringrazio,
Alex