Grafo di Erdos-Renyi in C
Ciao ragazzi.
Ho scritto il seguente codice per un grafo Erdos-Renyi:
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
Ho scritto il seguente codice per un grafo Erdos-Renyi:
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
Risposte
Il modello di Erdos-Renyi non garantisce che il grafo sia connesso. Per avere un grafo connesso devi cambiare modello.
Ti ringrazio per la risposta.
Volevo provare a renderlo connesso per costruzione, ma effettivamente qualcosa non tornava
Volevo provare a renderlo connesso per costruzione, ma effettivamente qualcosa non tornava
