打扰一下,如果它看起来太简单了,但我正在尝试构造一个常规网络的邻接矩阵,以使每个节点的度为k
,节点数为N
。每个节点k/2
在环形网络的每一侧都连接到其最近的邻居,没有回路且有多个边缘。对于一个简单的案例N=8
,k=4
我们有:
0 1 1 0 0 0 1 1
1 0 1 1 0 0 0 1
1 1 0 1 1 0 0 0
0 1 1 0 1 1 0 0
0 0 1 1 0 1 1 0
0 0 0 1 1 0 1 1
1 0 0 0 1 1 0 1
1 1 0 0 0 1 1 0
我写了这样的代码:
A (1:n,1:n) = 0
do j = 1,n
do i = 1,n
if ( (i-k/2<=j) .and. (j<=i+k/2) ) A(i,j) = 1
if ( (j-k/2<=i) .and. (i<=j+k/2) ) A(i,j) = 1
if (i==j) A(i,j) = 0
enddo
enddo
问题是k
上下行。也许应该使用定期债券。我搜索了许多类似的问题,但是什么也没找到。
这可以无条件解决。
vertex x
一侧的k / 2个邻居可以映射为:
A(x , ((x - 1 + 1) % N) + 1) = 1
A(x , ((x - 1 + 2) % N) + 1) = 1
.
.
.so on till k/2 neighbours
vertex x
另一边的a的k / 2个邻居可以映射为:
A(x , ((x - 1 + N - 2) % N) + 1) = 1
A(x , ((x - 1 + N - 1) % N) + 1) = 1
.
.
.so on till k/2 neighbours
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句