构建常规网络的邻接矩阵
Construct the adjacency matrix of a regular network
对不起,如果这看起来太简单了,但我正在尝试构造一个常规网络的邻接矩阵,使得每个节点的度数为k
,节点数为N
.每个节点都连接到环形的每一侧的 k/2
个最近的邻居 network.There 是无环和多条边。对于一个简单的案例 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
的 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
对不起,如果这看起来太简单了,但我正在尝试构造一个常规网络的邻接矩阵,使得每个节点的度数为k
,节点数为N
.每个节点都连接到环形的每一侧的 k/2
个最近的邻居 network.There 是无环和多条边。对于一个简单的案例 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
的 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