python 输入邻接矩阵
时间: 2023-09-13 15:07:57 浏览: 112
请问您需要一个 Python 程序来输入邻接矩阵吗?如果是,下面是一个简单的示例程序,它从标准输入中读取邻接矩阵并将其存储到一个二维列表中:
```
n = int(input("请输入节点数:"))
# 初始化邻接矩阵
adj_matrix = [[0] * n for _ in range(n)]
# 读取邻接矩阵
for i in range(n):
row = input(f"请输入第 {i+1} 行邻接矩阵,以空格分隔:").strip().split()
for j in range(n):
adj_matrix[i][j] = int(row[j])
# 输出邻接矩阵
print("邻接矩阵:")
for row in adj_matrix:
print(row)
```
这个程序首先要求用户输入节点数,然后初始化一个大小为 $n\times n$ 的邻接矩阵,接着按行读取邻接矩阵,每行数字之间用空格分隔。最后,程序输出邻接矩阵。您可以将其保存到一个 Python 文件中,例如 `input_adj_matrix.py`,然后在命令行中运行:
```
python input_adj_matrix.py
```
希望对您有帮助!
相关问题
python建邻接矩阵
在 Python 中,可以使用 numpy 库来创建邻接矩阵。以下是创建一个简单的无向图邻接矩阵的示例代码:
```python
import numpy as np
# 定义无向图的边
edges = [(0, 1), (0, 2), (1, 2), (2, 3)]
# 获取节点数
n = max(max(edges)) + 1
# 创建邻接矩阵
adj_matrix = np.zeros((n, n))
for edge in edges:
adj_matrix[edge[0], edge[1]] = 1
adj_matrix[edge[1], edge[0]] = 1
print(adj_matrix)
```
上述代码中,我们首先定义了无向图的边。然后,我们获取了节点数,也就是边中最大的节点编号加 1。接着,我们创建了一个 n 行 n 列的零矩阵,表示没有任何边相连。最后,我们遍历每条边,将矩阵中对应的元素设为 1,表示有一条边相连。由于是无向图,因此我们还需要将对称位置的元素设为 1,表示双向连接。
输出结果如下:
```
[[0. 1. 1. 0.]
[1. 0. 1. 0.]
[1. 1. 0. 1.]
[0. 0. 1. 0.]]
```
其中,第 i 行第 j 列的元素表示第 i 个节点和第 j 个节点是否相连。如果相连,值为 1,否则为 0。
python生成邻接矩阵
可以使用Python中的NumPy库来生成邻接矩阵。以下是一个生成邻接矩阵的示例代码:
```python
import numpy as np
# 定义图的节点数和边数
n_nodes = 5
n_edges = 7
# 随机生成边的起点和终点
edges = np.random.randint(0, n_nodes, size=(n_edges, 2))
# 创建邻接矩阵
adj_matrix = np.zeros((n_nodes, n_nodes))
# 将边加入邻接矩阵中
for i, j in edges:
adj_matrix[i][j] = 1
adj_matrix[j][i] = 1
print(adj_matrix)
```
此代码将生成一个大小为5x5的邻接矩阵,其中包含7条边。可以根据需要修改节点数和边数,并根据自己的数据生成邻接矩阵。
阅读全文