PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Fortran
[問題] 辨別二維區塊的方式?
作者:
ej03xu3
(Touerin)
2016-07-22 10:30:50
假設有一個10*10的二維矩陣
0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 0 0 0
0 1 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 0 0 0
0 0 0 1 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0
其中有兩塊有含數字1的封閉區塊
在你不知道這兩塊的位置和大小的情況下
你只知道二維矩陣的值有1有0
要怎麼分辨這兩個區塊呢?
例如寫成A和B區塊 變成:
0 0 0 0 0 0 0 0 0 0
0 0 A A A A A 0 0 0
0 A A A A A A A 0 0
0 A A A A A A 0 0 0
0 0 A A A A A 0 0 0
0 0 0 A A 0 0 0 0 0
0 0 0 0 0 0 0 B 0 0
0 0 0 0 0 0 B B B 0
0 0 0 0 0 B B B B 0
0 0 0 0 0 0 0 0 0 0
作者:
blc
(Anemos)
2016-07-23 08:45:00
flood fill
作者:
noonee
(我和烤肉間只差一撮孜然)
2016-07-24 01:13:00
首先你要定義 假設一個2x2矩陣 11和22是1 12和21是0這樣算不算1是連起來的? 還是一個1他對角的也要是0才算分開你有了明確得"區塊"的定義 就可以用掃描的方式找出來了
作者:
alen332l
(alen3321)
2016-07-25 17:57:00
用Breadth-First-Search矩陣元素定為Vertex定義「相鄰」的元素之間,有Edge連接然後就可以套入BFS了 效率為O(|V|+|E|)在這個例子裡面|V|為行數x列數 mxn|E|約和|V|差不多(雖然約為4倍,但同樣complexity)BFS在你矩陣很大時 效率比暴力法好不過如果你矩陣不大 較沒差
作者:
Sunal
(SSSSSSSSSSSSSSSSSSSSSSS)
2016-07-26 13:25:00
推樓上方法 找本資料結構教科書來看 BFS一定有教
繼續閱讀
Re: [問題] Fortran可以矩陣中放進矩陣嗎?
PTT0207445
[問題] Fortran可以矩陣中放進矩陣嗎?
etu4315
[問題] 請問如何執行.exe
windgaia
Re: [問題]fortran95 棒球遊戲
philodi
[問題] if用法
afe812
[問題]fortran95 棒球遊戲
bla880004
[問題] 關於聯集和交集
lindazoro
[問題] CVF 6.6 (32-bit) 如何連結 MS Fortran5.
versailles
[問題] 數值 底線的意思
afe812
[問題] 如何輸出不會被覆蓋
blue33210
Links
booklink
Contact Us: admin [ a t ] ucptt.com