实验10-1 找鞍点
时间: 2023-12-18 21:30:21 浏览: 42
以下是找鞍点的示例:
```python
def find_saddle_point(matrix):
for i in range(len(matrix)):
row_max = max(matrix[i])
col_index = matrix[i].index(row_max)
col = [matrix[j][col_index] for j in range(len(matrix))]
if matrix[i][col_index] == min(col):
return (i, col_index)
return "NONE"
# 示例1
matrix1 = [[4, 1, 7, 4], [1, 4, 8, 3], [6, 1, 6, 1], [2, 0, 7, 8]]
print(find_saddle_point(matrix1)) # 输出:(2, 1)
# 示例2
matrix2 = [[2, 1], [7, 4], [1, 1]]
print(find_saddle_point(matrix2)) # 输出:NONE
```
相关问题
实验7-2-8 找鞍点 (20 分)
实验7-2-8是指在数学分析中,通过求解函数的一阶和二阶偏导数,找到函数的鞍点。鞍点是函数的极值点之外的另一种特殊点,它既不是极大值也不是极小值,而是函数在该点处沿着某些方向上升,而在另一些方向上下降。找到鞍点可以帮助我们更好地理解函数的性质和行为。
c语言二维数组找鞍点
以下是C语言二维数组找鞍点的示例代码:
```c
#include <stdio.h>
#define M 3
#define N 4
int main()
{
int a[M][N] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; // 定义一个3行4列的二维数组
int i, j, k, max, min, flag;
for (i = 0; i < M; i++) // 遍历每一行
{
max = a[i][0]; // 假设第一个元素为最大值
flag = 1; // 假设第一个元素为鞍点
for (j = 1; j < N; j++) // 找到该行的最大值
{
if (a[i][j] > max)
{
max = a[i][j];
k = j; // 记录最大值的列数
}
}
for (j = 0; j < M; j++) // 找到该列的最小值
{
if (a[j][k] < min)
{
min = a[j][k];
}
}
if (max == min) // 如果该位置上的元素在该行上最大,在该列上最小,则为鞍点
{
printf("鞍点为:%d,位于第%d行第%d列\n", max, i + 1, k + 1);
flag = 0; // 标记已找到鞍点
}
if (flag) // 如果该行没有鞍点,则输出无
{
printf("第%d行没有鞍点\n", i + 1);
}
}
return 0;
}
```