找出一个五行五列的二维数组的鞍点,函数find判断数组a是否具有鞍点,如果有,则输出鞍点的坐标及鞍点上元素的值,如果没有,则输出“No!”。数组用随机数生成。
时间: 2023-12-17 11:04:14 浏览: 73
输入一个二维数组,找出该二维数组的鞍点,
4星 · 用户满意度95%
以下是实现代码:
```python
import random
def find(a):
for i in range(len(a)):
for j in range(len(a[0])):
if a[i][j] == min(a[i]) and a[i][j] == max([a[k][j] for k in range(len(a))]):
return (i, j, a[i][j])
return "No!"
# 生成一个五行五列的二维数组
a = [[random.randint(1, 100) for j in range(5)] for i in range(5)]
print("生成的数组为:")
for i in range(5):
print(a[i])
result = find(a)
print("鞍点为:", result)
```
思路解析:
鞍点是指在一个矩阵中,对于任意的一行上的最小值,在该列上也是这个最小值,则该位置就是一个鞍点。因此,我们可以通过双重循环遍历每一个元素,对于每个元素,判断其是否是所在行上的最小值和所在列上的最大值,如果是,则返回该元素的坐标和值。如果循环结束后都没有找到鞍点,则返回"No!"。
阅读全文