用python语言写一个可以随机生成任意无向强连通图的程序,其中给定节点数量,图用邻接矩阵表示
时间: 2024-04-16 16:29:17 浏览: 111
你可以使用Python编写一个程序来随机生成任意无向强连通图,并使用邻接矩阵表示。下面是一个示例代码:
```python
import random
def generate_graph(num_nodes):
# 创建一个空的邻接矩阵
graph = [[0 for _ in range(num_nodes)] for _ in range(num_nodes)]
# 生成随机的边
edges = []
for i in range(num_nodes - 1):
# 随机生成一个与当前节点相连的节点
j = random.randint(i + 1, num_nodes - 1)
edges.append((i, j))
# 在邻接矩阵中标记边的存在
graph[i][j] = 1
graph[j][i] = 1
# 随机选择一个起始节点,并确保所有节点都能到达它
start_node = random.randint(0, num_nodes - 1)
for i in range(num_nodes):
if i != start_node and (start_node, i) not in edges:
edges.append((start_node, i))
# 在邻接矩阵中标记边的存在
graph[start_node][i] = 1
graph[i][start_node] = 1
return graph
# 示例用法
num_nodes = 5
graph = generate_graph(num_nodes)
for row in graph:
print(row)
```
这个程序将生成一个包含指定节点数量的无向强连通图,并以邻接矩阵的形式打印出来。你可以根据需要修改代码以满足其他要求。
阅读全文