为了账号安全,请及时绑定邮箱和手机立即绑定

用于查找最大值的嵌套 For 循环

用于查找最大值的嵌套 For 循环

冉冉说 2022-06-28 10:57:10
我正在学习如何使用嵌套循环。我需要找到“nx n”矩阵的最大值的位置,并且我知道我需要包含一个条件语句,一旦最大值被确认,就停止嵌套的 for 循环。到目前为止,我设法编写了一个嵌套循环,该循环遍历矩阵的每一行和每一列以输出其最终位置。为了找到矩阵的最大值,我知道一种可能的方法是使用:max(sum(matrix, []))但是,我不完全确定在哪里放置这个条件来返回我正在寻找的东西。
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

当你这样做时for i in range(n),i会在循环的每次迭代中自行增加。你不需要增加它。


以下是遍历矩阵的方法:


n = len(matrix)

for i in range(n):

    for j in range(n):

        print('position ({}, {}) in matrix: {}'.format(i, j, n[i][j]))

因此,要找到最大值的位置,您可以跟踪迄今为止看到的最大值以及该值的位置,如下所示:


n = len(matrix)

max_value = float('-inf')

max_position = None

for i in range(n):

    for j in range(n):

        value = n[i][j]

        if value > max_value:

            max_value = value

            max_position = (i, j)

print('max value is {} at position ({}, {})'.format(

    max_value,

    max_position[0],

    max_position[1]

))


查看完整回答
反对 回复 2022-06-28
?
SMILET

TA贡献1796条经验 获得超4个赞

您可以尝试以下步骤:

  1. 假设矩阵的第一个元素是具有最大值的元素,即 [0,0] 位置处的元素执行以下操作,将位置存储在两个变量中(例如row=0col=0)和max中的值

  2. 现在,像往常一样遍历矩阵,并在每次迭代时检查当前元素(位置 [i,j])是否大于存储在max中的元素,如果是,则将max的值替换为当前元素 vList itemalue使用rowcol,如果没有,则继续下一次迭代。

  3. 返回rowcol


查看完整回答
反对 回复 2022-06-28
?
隔江千里

TA贡献1906条经验 获得超10个赞

import numpy as np


print("enter the dimensions")

m = int(input())

n = int(input())


print("enter the elements of the matrix")

list1 = []


for i in range(m):

    list2 = []

    for j in range(n):

        list2.append(int(input()))

    list1.append(list2)


print(np.asarray(list1))


max_elements = []

for i in range(m):

    list1[i].sort()

    max_element = list1[i][n-1]

    max_elements.append(max_element)


max_elements.sort()

the_max_element = max_elements[m-1]


print(the_max_element)

我使用了对内部列表进行排序,然后从中访问最大元素的概念。对这个新生成的列表进行另一种排序,以获得最大的元素。希望以上代码对您有所帮助。使用 numpy 以多维格式打印列表。


查看完整回答
反对 回复 2022-06-28
  • 3 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号