鱼C论坛

 找回密码
 立即注册
查看: 1826|回复: 3

[已解决]Python 第23課動手題第1題

[复制链接]
发表于 2023-4-4 09:34:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
matrix = [[10, 36, 52],[33, 24, 88],[66, 76, 99],[44,35,70]]
row=len(matrix)
col=len(matrix[0])
min_row=[1024]*row
max_col=[0]*col
for i in range(row):
    for j in range(col):
        min_row[i]=min(min_row[i],matrix[i][j])
        max_col[j]=max(max_col[j],matrix[i][j])

#這裡為什麼多寫一次相同的for循環,為什麼把下面的if移到上面的循環裡就輸出不了正確值?

for i in range(row):
    for j in range(col):
        if min_row[i]==max_col[j]==matrix[i][j]:
            print(matrix[i][j])
最佳答案
2023-4-4 10:50:23
在這段代碼中,你正在尋找矩陣中的鞍點,即每行中的最小值和每列中的最大值。為了找到鞍點,你首先需要找到每行的最小值和每列的最大值。這就是為什麼你需要兩個嵌套for循環。

在第一個嵌套for循環中,你計算每行的最小值(min_row)和每列的最大值(max_col)。這個循環確保在比較之前,所有的最小行值和最大列值都已經計算好了。

然後,在第二個嵌套for循環中,你在檢查每個元素是否是其所在行的最小值和所在列的最大值。如果滿足這些條件,那麼這個元素就是鞍點,你將其輸出。

如果你把下面的if語句移到上面的循環中,那麼對於矩陣的每個元素,你將在計算最小行值和最大列值的同時檢查是否滿足鞍點條件。這樣做將導致在所有最小行值和最大列值計算完成之前就試圖找到鞍點,從而導致錯誤的結果。

總之,你需要兩個獨立的嵌套for循環,因為第一個循環用於計算每行的最小值和每列的最大值,而第二個循環用於檢查並輸出鞍點。在第一個循環中檢查鞍點將導致在所有最小行值和最大列值計算完成之前就試圖找到鞍點,這將導致不正確的結果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-4 10:50:23 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +5 鱼币

在這段代碼中,你正在尋找矩陣中的鞍點,即每行中的最小值和每列中的最大值。為了找到鞍點,你首先需要找到每行的最小值和每列的最大值。這就是為什麼你需要兩個嵌套for循環。

在第一個嵌套for循環中,你計算每行的最小值(min_row)和每列的最大值(max_col)。這個循環確保在比較之前,所有的最小行值和最大列值都已經計算好了。

然後,在第二個嵌套for循環中,你在檢查每個元素是否是其所在行的最小值和所在列的最大值。如果滿足這些條件,那麼這個元素就是鞍點,你將其輸出。

如果你把下面的if語句移到上面的循環中,那麼對於矩陣的每個元素,你將在計算最小行值和最大列值的同時檢查是否滿足鞍點條件。這樣做將導致在所有最小行值和最大列值計算完成之前就試圖找到鞍點,從而導致錯誤的結果。

總之,你需要兩個獨立的嵌套for循環,因為第一個循環用於計算每行的最小值和每列的最大值,而第二個循環用於檢查並輸出鞍點。在第一個循環中檢查鞍點將導致在所有最小行值和最大列值計算完成之前就試圖找到鞍點,這將導致不正確的結果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-4 11:58:23 | 显示全部楼层
isdkz 发表于 2023-4-4 10:50
在這段代碼中,你正在尋找矩陣中的鞍點,即每行中的最小值和每列中的最大值。為了找到鞍點,你首先需要找到 ...

感謝大佬!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-4 17:32:03 | 显示全部楼层

回帖奖励 +5 鱼币

学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 23:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表