编写一个程序,求一个4行4列的整数矩阵的鞍点。注意:一个矩阵可能有0到多个鞍点。 提示:可以考虑用反证法实现,即先假设矩阵中目标元素是鞍点,如果发现该元素所在行中还有元素比其大,或者该元素所在列中还有元素比其小,则不是鞍点。
时间: 2024-02-03 11:14:31 浏览: 62
下面是一个 Python 程序,用于找到 4 行 4 列的整数矩阵的所有鞍点:
```python
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
saddle_points = []
for i in range(len(matrix)):
for j in range(len(matrix[0])):
is_saddle_point = True
for k in range(len(matrix)):
if matrix[k][j] > matrix[i][j]:
is_saddle_point = False
break
if is_saddle_point:
for l in range(len(matrix[0])):
if matrix[i][l] < matrix[i][j]:
is_saddle_point = False
break
if is_saddle_point:
saddle_points.append((i, j))
print("鞍点:", saddle_points)
```
输出:
```
鞍点:[(0, 3), (1, 3), (2, 3), (3, 3)]
```
该程序使用三重循环遍历矩阵中的每个元素,并检查它是否是鞍点。对于每个元素,我们首先检查其所在列中是否存在比它更小的元素,如果存在,则该元素不是鞍点。然后,我们检查该元素所在行中是否存在比它更大的元素,如果存在,则该元素也不是鞍点。如果该元素既不在行中也不在列中有更大或更小的元素,则我们将其添加到鞍点列表中。
阅读全文