欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 求矩阵的鞍点

求矩阵的鞍点

2025/5/23 11:28:57 来源:https://blog.csdn.net/m0_73801775/article/details/142738336  浏览:    关键词:求矩阵的鞍点

题目:求一个矩阵的鞍点,即行上最小而列上最大的元素。

代码:(多个最小值认为第一个为最小,更严谨的代码在最后)

#include<iostream>
#include<time.h>
using namespace std;int main(){int n,m;cout<<"请输入矩阵的行数和列数: "<<endl;cin>>n>>m;int a[n+1][m+1];srand(time(NULL));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){a[i][j]=rand()%10;}}//	a[1][1]=5;a[1][2]=10;a[1][3]=15;
//	a[2][1]=2;a[2][2]=7;a[2][3]=8;
//	a[3][1]=1;a[3][2]=9;a[3][3]=10;
//	cout<<"矩阵为:"<<endl; for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cout<<a[i][j]<<" ";}cout<<endl;}int cnt=0;//cnt个鞍点 for(int i=1;i<=n;i++){ //找第i行的最小值的列数 int min=a[i][1],mini=1;for(int j=1;j<=m;j++){if(min>a[i][j]){min=a[i][j];mini=j; }} bool flag=true;//判断第mini列上a[i][mini]是否为最大for(int k=1;k<=n;k++){if(a[k][mini]>a[i][mini]){flag=false;break;}} if(flag){cnt++;cout<<"鞍点:"<<a[i][mini]<<endl;}}if(cnt==0){cout<<"没有鞍点"<<endl;} return 0;
}

 代码:

#include<iostream>
#include<time.h>
using namespace std;void maxJ(int mini){//判断第mini列上a[i][mini]是否为最大}
int main(){int n,m;cout<<"请输入矩阵的行数和列数: "<<endl;cin>>n>>m;int a[n][m];
//	srand(time(NULL));
//	for(int i=1;i<=n;i++){
//		for(int j=1;j<=m;j++){
//			a[i][j]=rand()%10;
//		}
//	}a[1][1]=5;a[1][2]=5;a[1][3]=15;a[2][1]=2;a[2][2]=2;a[2][3]=8;a[3][1]=1;a[3][2]=1;a[3][3]=10;cout<<"矩阵为:"<<endl; for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cout<<a[i][j]<<" ";}cout<<endl;}int cnt=0;//cnt个鞍点 for(int i=1;i<=n;i++){ //找第i行的最小值的列数(可能有多个)int minValue=a[i][1],mini[m],min_cnt=0;for(int j=1;j<=m;j++){if(minValue>a[i][j]){min_cnt=0;minValue=a[i][j];mini[min_cnt++]=j;}else if(minValue==a[i][j]){mini[min_cnt++]=j; }} //判断第mini列上a[i][mini]是否为最大bool flag=true;for(int mcnt=0;mcnt<min_cnt;mcnt++){bool flag=true;for(int k=1;k<=n;k++){if(a[k][mini[mcnt]]>a[i][mini[mcnt]]){flag=false;break;}} if(flag){cnt++;cout<<"鞍点:"<<a[i][mini[mcnt]]<<" 位置:x="<<i<<",y="<<mini[mcnt]<<endl;}}}if(cnt==0){cout<<"没有鞍点"<<endl;} return 0;
}

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词