假设n*n的稀疏矩阵A 采用三元组表示,设计一个程序exp5-1.py实现以下功能。
时间: 2024-02-13 13:00:26 浏览: 140
利用三元组实现稀疏矩阵的操作
以下是一个实现程序exp5-1.py的代码示例:
```python
import numpy as np
n = 5 # 稀疏矩阵的大小
# 随机生成稀疏矩阵A
nnz = n * 2 # 非零元素的数量
rows = np.random.randint(n, size=nnz)
cols = np.random.randint(n, size=nnz)
vals = np.random.rand(nnz)
A = np.zeros((n, n))
for i in range(nnz):
A[rows[i], cols[i]] = vals[i]
# 输出稀疏矩阵A
print("稀疏矩阵A:")
for i in range(n):
for j in range(n):
print("{:.2f}".format(A[i, j]), end="\t")
print()
# 将稀疏矩阵A转换为三元组表示
data = []
for i in range(n):
for j in range(n):
if A[i, j] != 0:
data.append((i, j, A[i, j]))
# 输出稀疏矩阵A的三元组表示
print("稀疏矩阵A的三元组表示:")
for i in range(len(data)):
print("({}, {}, {:.2f})".format(data[i][0], data[i][1], data[i][2]))
```
在上面的代码中,我们首先定义了稀疏矩阵的大小n,并使用numpy库中的random模块生成了一个随机的稀疏矩阵A。然后,我们输出了稀疏矩阵A,并将其转换为三元组表示。最后,我们输出了稀疏矩阵A的三元组表示。
你可以将上面的代码保存为exp5-1.py文件,并在命令行中运行该文件来测试程序的输出结果。
阅读全文