python求二维数组的鞍点
时间: 2023-07-26 22:15:54 浏览: 92
在二维数组中,鞍点是指在该行上最大的元素,在该列上最小的元素。以下是一个Python程序来查找二维数组的鞍点:
```python
def saddle_point(arr):
# 遍历每一行
for i in range(len(arr)):
# 找到该行的最大值和它的索引
row_max = max(arr[i])
col_index = arr[i].index(row_max)
# 检查该列是否是该列上的最小值
col = [arr[j][col_index] for j in range(len(arr))]
if row_max == min(col):
return (i, col_index)
return None
```
这个函数接收一个二维数组作为参数,并返回鞍点的索引。如果没有鞍点,则返回None。
相关问题
求一个二维数组中的鞍点
以下是求一个二维数组中的鞍点的Python代码实现:
```python
# 定义一个函数来寻找鞍点
def find_saddle_point(matrix):
for i in range(len(matrix)):
# 找到该行中的最大值及其索引
max_in_row = max(matrix[i])
max_index = matrix[i].index(max_in_row)
# 判断该最大值是否为该列中的最小值
if max_in_row == min([matrix[j][max_index] for j in range(len(matrix))]):
return (i, max_index, max_in_row) # 返回鞍点的位置及其值
return None # 如果没有鞍点,则返回None
# 测试
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
saddle_point = find_saddle_point(matrix)
if saddle_point:
print("鞍点位置:({}, {}),鞍点值:{}".format(saddle_point[0], saddle_point[1], saddle_point[2]))
else:
print("该二维数组中没有鞍点。")
```
输出结果为:
```
鞍点位置:2, 0,鞍点值:7
```
编写程序求出二维数组中的鞍点。
以下是一个编写程序求出二维数组中鞍点的例子:
```python
def find_saddle_point(matrix):
rows = len(matrix)
cols = len(matrix[0])
for i in range(rows):
row_max = max(matrix[i])
col_index = matrix[i].index(row_max)
col_min = matrix[i][col_index]
for j in range(rows):
if matrix[j][col_index] < col_min:
col_min = matrix[j][col_index]
if row_max == col_min:
return i, col_index, row_max
return "No"
# 测试例子
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = find_saddle_point(matrix)
print(result) # 输出:(2, 0, 7)
```