python根据邻接矩阵求度分布
时间: 2023-10-18 14:23:53 浏览: 96
python使用邻接矩阵构造图代码示例
假设邻接矩阵为 $adj$,其中 $adj[i][j]=1$ 表示 $i$ 和 $j$ 之间有一条边,否则为 $0$。我们可以按照如下方式求解度分布:
```python
def degree_distribution(adj):
n = len(adj)
degrees = [0] * n
for i in range(n):
for j in range(n):
if adj[i][j] == 1:
degrees[i] += 1
distribution = [0] * (max(degrees) + 1)
for d in degrees:
distribution[d] += 1
return distribution
```
其中,我们首先遍历邻接矩阵中的每一个元素,统计每个节点的度数。然后,我们再遍历统计得到的度数列表,计算每个度数在图中出现的次数,最终得到度分布。
注意,这里我们假设节点的编号从 $0$ 开始,因此度数列表的长度为最大度数 $+1$。如果节点编号从 $1$ 开始,需要对代码进行相应修改。
阅读全文