Python用元组定义一个4*4的整型矩阵,编写程序输出这个矩阵的所有鞍点,即该位置上的元素在 该行上最大、该列上最小的鞍点。
时间: 2024-10-18 21:23:20 浏览: 41
Python列表和元组的定义与使用操作示例
5星 · 资源好评率100%
在Python中,首先我们需要创建一个4x4的整数矩阵,并定义鞍点的条件。然后遍历整个矩阵,找出每个位置上的元素同时满足行最大值和列最小值的情况。以下是如何实现这个功能的示例代码:
```python
# 定义一个4x4的整型矩阵
matrix = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
]
def is_rocky_point(matrix, row, col):
# 检查当前元素是否在行上最大,在列上最小
return matrix[row][col] > max(matrix[row]) and matrix[row][col] < min(row_val for row_val in matrix[col])
# 初始化行最大值和列最小值
row_maxes = [float('-inf')] * len(matrix)
column_mins = [float('inf')] * len(matrix[0])
# 计算行最大值和列最小值
for i, row in enumerate(matrix):
for j, val in enumerate(row):
row_maxes[i] = max(row_maxes[i], val)
column_mins[j] = min(column_mins[j], val)
# 找出鞍点
rocky_points = [(i, j) for i, row in enumerate(matrix) for j, val in enumerate(row) if is_rocky_point(matrix, i, j)]
# 输出鞍点
print("鞍点坐标:", rocky_points)
```
这段代码首先初始化行最大值和列最小值,然后遍历矩阵计算它们。最后,它通过检查每个元素是否既是其所在行的最大值又是所在列的最小值,找出鞍点并打印出来。
阅读全文