ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 编程找出矩阵中的幸运数字:说明,在一个给定的M*N的矩阵(矩阵中的取值0-1024,且各不相同),如果某一个元素的值在同一行中最小,并且在同一列中元素最大,那么该数字为幸运数字。

2022-09-15 09:30:29  阅读:240  来源: 互联网

标签:10 maxcol 数字 矩阵 arr minrow 幸运 col row


假设给定矩阵如下:

matrix=[[10,36,52],

[33,24,88],

[66,76,99]]

那么输出结果应为66(同时满足条件)

代码如下:


arr=[[10,36,52],
[33,24,88],
[66,76,99]]

#获取矩阵的元素个数,也就是行数
row=len(arr) #row=3
print(row)
#获取矩阵的列数数,也就是一维数组中的元素个数
col=len(arr[0]) #col=3
print(col)

#有多少行就有多少个行最小值,minrow[col],来进行统计col取值为0..row
#同理有多少个列就有多少个列最大值,用maxcol[col],来进行统计col取值为0..col
#先赋初值,题目是0到1024,那就可以让最小值初值为最大,最大值初值为最小
minrow=[1024]*row
for i in range(row):
print(minrow[i])
#这里就是把minrow[0]=1024,minrow[1]=1024,minrow[2]=1024
maxcol=[0]*col
for i in range(col):
print(maxcol[i])
#这里就是把mincol[0]=0,mincol[1]=0,mincol[2]=0
#这个容易理解,要求最小,我就拿个最大的和你比,如果比我小,让换成小的,直到找到最小,同理找到最大的也是这样


#i为行号,j为列号
for i in range(row):
for j in range(col):
print(i,j,arr[i][j])
minrow[i]=min(arr[i][j],minrow[i]) #第一次让arr[0,0]=10和minrow[0]=1024进行对比,取小的minrow[0]=10,以此类推
maxcol[j]=max(arr[i][j],maxcol[j]) #第一次让arr[0,0]=10和maxrow[0]=0进行对比,取大的maxrow[0]=10,以此类推,一个元素即是在行i里面,同时又在列j里面,所以同时比较


#通过上面比较,我们获取了minrow[0]=10,minrow[1]=24,minrow[2]=66,
#通过上面比较,我们获取了maxcol[0]=66,maxcol[1]=76,maxcol[3]=99


#接下来获取幸运数就容易了,两两比较有相等的就可以了
for i in range(row):
for j in range(col):
if minrow[i]==maxcol[j]:
print("幸运数是:",minrow[i])

运行结果:

 

标签:10,maxcol,数字,矩阵,arr,minrow,幸运,col,row
来源: https://www.cnblogs.com/ybHsir/p/16695382.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有