C/C++环境下OJ系统的鞍点问题体现及其解析方法
发布时间
阅读量:
阅读量
> 题目:马鞍点
对于任意给定的矩阵我们可以暂且将其中的某个元素定义为既是其所在行的最小元素同时也是其所在列的最大元素那么这个点就被称为该矩阵的一个极大元素
测试数据总共有m+1行;第一行为两个正整數m和n(均大於0),分別代表矩陣的行列數。
如不存在,输出"no";否则输出矩阵的马鞍点,格式为 “行号 列号 值”,如:
输入:
4 3
7 4 5
-1 3 5
0 2 -5
2 2 2
输出 :
0 1 4
> 马鞍点问题的歧义
我浏览了几篇博客后发现,在这些代码中针对给定的数据会生成该矩阵中的所有元素:[2,2,2;2,2,2;2,2,2]。也就是说,在这种情况下当输入一个平面时每个数值既是对应行的最小值又是对应列的最大值。从题意描述来看,在语言学范畴内当然没问题但在严格的数学定义下却并不满足这一条件。
我查阅了维基百科上关于'鞍点'的介绍:https://en.wikipedia.org/wiki/Saddle_point。值得注意的是,在一个平面上并不存在任何'鞍点'。
在原题的描述中还存在一个重要歧义:一行或一列的最大值/最小值是否有必要是唯一的?即使不必要唯一的话,则会导致平面上的所有点都成为鞍点;然而如果要求必须是唯一的,则从数学上来看这样的结论可能存在问题:只要在一个方向上的趋势与另一
全部评论 (0)
还没有任何评论哟~
