python实现一个矩阵元素的' ' 鞍点" 是扌旨该位首上的元素值在该行上最大在该列上最小。 本题要求编写程序求一个给定的n 阶方阵的鞍点
时间: 2024-03-02 16:49:55 浏览: 124
找n阶方阵的鞍点
好的,这是一个比较经典的矩阵问题。可以按照以下步骤进行实现:
1. 输入矩阵,可以使用二维列表来表示矩阵。
2. 对于每一个元素,分别找出它所在行的最大值和所在列的最小值。
3. 如果该元素既是所在行的最大值又是所在列的最小值,则它就是一个鞍点,输出它的位置和值。
代码实现如下:
```python
def find_saddle_point(matrix):
n = len(matrix)
m = len(matrix[0])
saddle_points = []
for i in range(n):
for j in range(m):
max_row = max(matrix[i])
min_col = min([matrix[k][j] for k in range(n)])
if matrix[i][j] == max_row and matrix[i][j] == min_col:
saddle_points.append((i, j, matrix[i][j]))
return saddle_points
# 测试
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(find_saddle_point(matrix)) # output: [(0, 2, 3)]
```
在上面的代码中,使用了两个循环来遍历矩阵中的每一个元素。对于每一个元素,分别找出它所在行的最大值和所在列的最小值,然后判断是否满足鞍点的条件。如果满足,则把它的位置和值保存到一个列表中。最后返回所有的鞍点。
阅读全文