补充题: 设计一个矩阵类,其中,封装有一个数组,含求所有元素和 的方法。方阵继承矩阵类,构造时要求数据的行、列相同, 并提供求主对角线元素和的方法,用随机数构建6x6方阵, 输出方阵,并求所有元素和、主对角线元素和。
时间: 2024-05-13 10:18:04 浏览: 88
求矩阵各行元素之和(详细教程)
以下是实现代码:
```python
import random
class Matrix:
def __init__(self, rows, cols):
self.rows = rows
self.cols = cols
self.data = [[0 for j in range(cols)] for i in range(rows)]
def randomize(self):
for i in range(self.rows):
for j in range(self.cols):
self.data[i][j] = random.random()
def sum(self):
s = 0
for i in range(self.rows):
for j in range(self.cols):
s += self.data[i][j]
return s
def print(self):
for i in range(self.rows):
for j in range(self.cols):
print(self.data[i][j], end=' ')
print()
class SquareMatrix(Matrix):
def __init__(self, n):
super().__init__(n, n)
def sum_diagonal(self):
s = 0
for i in range(self.rows):
s += self.data[i][i]
return s
# 随机生成6x6矩阵
m = SquareMatrix(6)
m.randomize()
# 输出矩阵
m.print()
# 求所有元素和
print("Sum of all elements:", m.sum())
# 求主对角线元素和
print("Sum of diagonal elements:", m.sum_diagonal())
```
以上代码中,我们首先定义了一个 `Matrix` 类,它包含了矩阵的行数、列数和数据数组,并且实现了随机初始化、求和和打印矩阵的方法。
然后我们定义了一个 `SquareMatrix` 类,它继承自 `Matrix` 类,并且要求行数和列数相等。在这个类中,我们额外实现了一个求主对角线元素和的方法。
最后,我们生成一个 6x6 的方阵对象 `m`,随机初始化它的数据,并且输出矩阵、求所有元素和和求主对角线元素和。
阅读全文