国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python】求矩陣鞍點的幾種思路

這篇具有很好參考價值的文章主要介紹了【Python】求矩陣鞍點的幾種思路。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


代碼思路僅供參考,歡迎大家批評指正!



求矩陣鞍點的個數(shù)

一個矩陣元素的“鞍點”是指該位置上的元素值在該行上最大、在該列上最小。

本題要求編寫程序,求一個給定的n階方陣的鞍點。

題目詳情

python中怎樣利用bf算法求解馬鞍點,Python,python,矩陣,算法

思路1

遍歷矩陣m,判斷每一個點是否為鞍點。時間復雜度為O(n3)

代碼

# By jurio.
n = int(input())
m = []
for r in range(n):
    m.append(input().split())

c = 0
for i in range(n):
    for j in range(n):
        if m[i][j] == max([m[i][k] for k in range(n)]) and m[i][j] == min([m[k][j] for k in range(n)]):
            c+=1
print(c)

思路2

根據(jù)鞍點的特征——某一行最大值,即一行最多存在一個鞍點,所以只需遍歷每一行判斷當前行是否有鞍點即可。時間復雜度為O(n2)

代碼

# By jurio.
n = int(input())
m = []
for r in range(n):
    m.append(input().split())

r0 = 0
saddle_point = 0
for r0 in range(n):
    max_id = [index for (index,value) in enumerate(m[r0]) if value == max(m[r0])]
    for id_i in max_id:
        if m[r0][id_i] == min(m[r][id_i] for r in range(n)):
            saddle_point += 1
print(saddle_point)

思路3

我們知道鞍點不僅是某一行最大值,同時是該行最大值那一列的最小值。那么理論上可以用下面的算法進行查找:

  1. 從第一行開始找到最大值,然后判斷是否為當前列最小值;
  2. 若是最小值則鞍點個數(shù)+1,同時該列可以排除(后續(xù)檢索到該列直接跳過),然后行數(shù)+1重新開始;
  3. 若不是則找到該列最小值,將最小值所在行作為新的起點,并判斷該最小值是否為鞍點;
  4. 若是鞍點則+1,排除當前行和列;
  5. 若不是則排除列,同時繼續(xù)尋找該行最大值,即回歸第1步。

上述思路可以使用兩個列表來存儲已排除的行和列,并在遍歷時判斷當前行列是否已在排除列表。理論上時間復雜度應該為O(nlogn)

PTA暫時無法使用numpy,用列表實現(xiàn)比較困難暫時沒有代碼實現(xiàn),上述算法僅代表個人看法,思路不對的地方希望大家批評指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-774506.html

到了這里,關于【Python】求矩陣鞍點的幾種思路的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • python數(shù)組循環(huán)的幾種方式

    ?Python中循環(huán)數(shù)組有幾種方式: for-in循環(huán),可以遍歷數(shù)組中的每一個元素。 while循環(huán),使用索引進行循環(huán)。 列表推導式,可以快速創(chuàng)建新的列表。 遞歸,可以遍歷多維數(shù)組。 enumerate() 函數(shù),在循環(huán)中同時獲取索引和元素

    2024年02月16日
    瀏覽(24)
  • Python 打開網(wǎng)頁的幾種方式

    方法1:直接調(diào)用系統(tǒng)命令 os 方法2:引用webrowser包 方法3:引用selenium工具,解決閃退問題 附:Pycharm 安裝selenium 工具說明

    2024年02月16日
    瀏覽(25)
  • python下載包的幾種方法

    python下載包的幾種方法

    有時候下載包總是報錯,各種各樣的錯誤。參考了很多很多,最終想記下一些。按照從易到繁的順序。 最方便的就是通過pycharm編譯器,點擊加號搜索包。 然后是用anaconda prompt使用命令 pip install [-i 鏡像網(wǎng)址] 包名,方括號可有可無,看下載速度或者是否報錯。 接著就是跑到

    2024年02月15日
    瀏覽(23)
  • Python統(tǒng)計詞頻的幾種方法

    本文介紹python統(tǒng)計詞頻的幾種方法,供大家參考 目錄 方法一:運用集合去重方法 方法二:運用字典統(tǒng)計 方法三:使用計數(shù)器 說明:運用集合對文本字符串列表去重,這樣統(tǒng)計詞匯不會重復,運用列表的counts方法統(tǒng)計頻數(shù),將每個詞匯和其出現(xiàn)的次數(shù)打包成一個列表加入到

    2024年02月13日
    瀏覽(28)
  • Python保存圖像的幾種方式

    記錄讀取和保存圖像的幾種方式 1.1、使用 cv2 讀取圖片,注意:opencv打開路徑中不能有中文!?。?1.2、使用 rasterio 讀取遙感影像 1.3、使用 Image 讀取圖像 2.1、使用 cv2 保存圖片 2.2、使用numpy保存 2.3、使用plt保存 參考: https://blog.csdn.net/xzm961226xzm/article/details/120951317 https://bl

    2024年02月11日
    瀏覽(24)
  • 頭歌Python實訓答案——Python的幾種數(shù)據(jù)結(jié)構(gòu)

    第1關:列表及操作 #coding = utf-8 #********* Begin *********# #第一步 請在列表fruits中找出不屬于水果一類元素,賦值給變量 a fruit = [\\\"蘋果\\\",\\\"梨子\\\",\\\"菠蘿\\\",\\\"黃瓜\\\",\\\"香蕉\\\"] a =\\\"黃瓜\\\" #第二步 將變量 a 的值添加到列表vegetable 的末尾 vegetable = [\\\"土豆\\\",\\\"蘿卜\\\",\\\"茄子\\\",\\\"白菜\\\"] vegetable.append(a) #第三

    2024年02月05日
    瀏覽(125)
  • Python調(diào)用剪切板的幾種方法

    最近在網(wǎng)上搜索Python調(diào)用剪切板的方法,得到比較多的說法是調(diào)用ctypes包中自帶的函數(shù)get_clipboard和set_clipboard函數(shù),可是但我動手實現(xiàn)時卻發(fā)現(xiàn)根本沒有這兩個函數(shù),于是我覺得自己寫一篇文字講述Python的剪切板,可能不全,敬請諒解。 網(wǎng)上看到有人說pandas包里有 從剪切板到

    2024年02月02日
    瀏覽(21)
  • python 判斷是否漢字的幾種方法

    1. 使用Python內(nèi)置的ord() ord()函數(shù)將字符轉(zhuǎn)換為Unicode編碼,然后判斷其范圍是否在漢字的范圍內(nèi): 示例代碼: 2. 使用Python內(nèi)置的unicodedata庫: 使用Python內(nèi)置的unicodedata庫可以用來判斷一個字符是否為漢字 示例代碼: 3. 使用正則表達式 可以使用正則表達式來判斷一個字符是否為

    2024年02月12日
    瀏覽(22)
  • 統(tǒng)計文本詞頻的幾種方法(Python)

    統(tǒng)計文本詞頻的幾種方法(Python)

    目錄 1. 單句的詞頻統(tǒng)計 2. 文章的詞頻統(tǒng)計 方法一:運用集合去重方法 方法二:運用字典統(tǒng)計 方法三:使用計數(shù)器 詞頻統(tǒng)計是自然語言處理的基本任務,針對一段句子、一篇文章或一組文章,統(tǒng)計文章中每個單詞出現(xiàn)的次數(shù),在此基礎上發(fā)現(xiàn)文章的主題詞、熱詞。 思路:首

    2024年02月04日
    瀏覽(25)
  • python操作PDF的幾種常見方法

    python操作PDF的幾種常見方法

    大家好,有關python操作pdf的方法,各種語言處理起來都比較麻煩,而且各種第三方庫的應用場景都不同。下面說明一下python如何通過第三方庫如何處理pdf文件。 1.1、pdfplumber提取文本內(nèi)容 安裝pdfplumber pdfplumber提取PDF中文字代碼思路如下 利用pdfplumber打開一個 PDF 文件 獲取指定

    2024年02月03日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包