在python中,编写一个函数,接收一个矩阵,返回此矩阵中的马鞍点。所谓马鞍点,即对于矩阵mxn 中的某个元素aij是第i行的最大值,同时又是第j列中的最小值,则称此元素为该矩阵中的一个马鞍点。
时间: 2024-12-08 12:15:37 浏览: 4
matlab_3d彩色条形图的源代码,为MxN矩阵中的每个条形创建具有任意颜色的三维条形图
5星 · 资源好评率100%
在Python中,你可以编写一个函数来找到矩阵中的马鞍点,可以按照以下步骤实现:
```python
def find_saddle_point(matrix):
row_max = [float('-inf')] * len(matrix) # 初始化每行最大值为负无穷大
col_min = [float('inf')] * len(matrix[0]) # 初始化每列最小值为正无穷大
for i in range(len(matrix)):
for j in range(len(matrix[i])):
if matrix[i][j] > row_max[i]:
row_max[i] = matrix[i][j]
if matrix[i][j] < col_min[j]:
col_min[j] = matrix[i][j]
saddle_points = [] # 存储马鞍点的列表
for i, max_row in enumerate(row_max):
for j, min_col in enumerate(col_min):
if max_row == matrix[i][j] and min_col == matrix[i][j]: # 检查当前元素是否既是行最大值也是列最小值
saddle_points.append((i, j))
return saddle_points if saddle_points else None # 返回马鞍点的坐标列表,如果没有则返回None
# 示例
matrix = [
[3, 7, 4],
[5, 8, 6],
[9, 1, 2]
]
saddle_points = find_saddle_point(matrix)
print("矩阵中的马鞍点是:", saddle_points)
阅读全文