【发布时间】:2019-04-08 14:38:34
【问题描述】:
我想创建一个随机邻接矩阵,其中每个节点都连接到“k”个其他节点。邻接矩阵表示的图是无向的。
我从邻接矩阵中的 7 个节点开始,每个节点都应该连接到至少 3 个其他节点。到目前为止,我已经能够得到这个:
0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0
从矩阵可以看出,第一行和最后一行的连接少于三个。
到目前为止我的实现是:
for( int i= 0; i<7; i++){
for( int j= i+1; j<7; j++){
if(i==j){
topo[i][j]=0;
}
else{
for(int k=j; k<i+3 && k<7; k++){
int connectivity=0;
while(connectivity<3){
if(topo[i][k]!=1 && topo[k][i]!=1){
topo[i][k]=1;
topo[k][i]=1;
connectivity++;
}
else{
connectivity++;
}
}
}
}
}
}
【问题讨论】:
-
我有点困惑。您的标题说“至少 7”,然后问题说“正好 7”,然后问题说“至少 3”。你的目标是哪一个?
-
考虑:
k第一次通过的值范围是多少(i== 0 和j== 1)?
标签: c++ c++11 networking graph routing