随机生成个n阶简单图有向图的邻接矩阵代码
时间: 2025-01-09 12:01:43 浏览: 0
在Python中,我们可以使用`networkx`库来创建一个随机的有向图,并将其转换为邻接矩阵。这里是一个简单的例子,假设你想生成一个n阶的有向图:
```python
import random
import networkx as nx
def generate_digraph(n):
# 创建一个空的有向图
G = nx.DiGraph()
# 添加节点
for i in range(1, n+1):
G.add_node(i)
# 随机添加边
num_edges = random.randint(1, n * (n - 1)) # 随机选择一定数量的边
for _ in range(num_edges):
src = random.randint(1, n) # 源节点
dest = random.randint(src + 1, n) if src != n else random.randint(1, src - 1) # 目标节点不能是源节点本身
G.add_edge(src, dest) # 添加边
# 转换为邻接矩阵
adj_matrix = nx.to_numpy_array(G, dtype=int)
return adj_matrix
# 示例:生成一个5阶的有向图
n = 5
adj_matrix = generate_digraph(n)
print("生成的有向图邻接矩阵:\n", adj_matrix)
```
这个函数首先创建了一个空的有向图,然后随机添加节点和边,最后将图形转换成邻接矩阵。注意,由于有向图的边是有方向性的,所以生成目标节点时需要一些特殊处理。
阅读全文