[爆卦]集合的運算是什麼?優點缺點精華區懶人包

為什麼這篇集合的運算鄉民發文收入到精華區:因為在集合的運算這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者EatDreamBoy (吃夢的男孩)看板C_and_CPP標題[問題] 數學集合的包含運算時間...

集合的運算 在 Lara Liang Veronin 梁心頤 Instagram 的最讚貼文

2021-09-17 12:33:10

最好的自己不在未來,就在現在。 認真回想,以前我好像在每一段關係中都是在扮演某一個角色,不由自主的在為每個對象做調整。不只有在戀愛上,有時候可能跟朋友、工作夥伴都是,尤其是在前輩面前,常常我都會本能反應似的改變自己。聲音要甜一點嗎?笑話要低級一點嗎?從穿衣服就可以看出,我今天是要跟誰吃飯。雖然是微...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)

C
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)


問題(Question):

要做數學集合的運算 目前做出 聯集 交集 差集

可是包含不知道怎麼判斷才能完整做出集合包含跟元素包含

餵入的資料(Input):


集合 內元素
0 1.2.3.4.5
1 5.4.1.
2 2.3
3 5.6.7
4 1.2.3.4.5
5 2.9
....

預期的正確結果(Expected Output):

集合包含就是像集合0跟集合1內的元素有部分相同
所以集合1會被集合0包含住 所以集合1刪掉(541跟12345)
同理
集合2會被集合0包含住 所以集合2刪掉(23跟12345)
集合4會被集合0包含住 所以集合4刪掉(12345跟12345)
================
元素包含就是指像是元素1 出現在集合0.1.4 而元素4 也出現在集合0.1.4
所以元素4 會被元素1包含住 所以元素4 刪掉
同理
元素3會被元素2包含住 元素2出現在0.2.4.5 而 元素3出現在0.2.4
元素3會被部分包含 所以元素3刪掉(集合0.2.4)

錯誤結果(Wrong Output):


程式碼(Code):(請善用置底文網頁, 記得排版)


補充說明(Supplement):

目前是把每個元素都存在一維陣列A裡面 然後原本空的集合元素用0取代

所以會變成

集合 內元素
0 1.2.3.4.5
1 5.4.1.0.0
2 2.3.0.0.0
3 5.6.7.0.0
4 1.2.3.4.5
5 2.9.0.0.0

做集合包含
原本是想用暴力法掃過陣列A

可是條件是不知道要怎麼判斷才能把多餘的元素或陣列刪掉

假設每列叫作r 每行叫做c
for(r=0; r< r_end;r++)
我在寫if這邊碰到困難 因為每行的行數不一樣
寫if(A(row*5+column_1)==A((row+1)*5+column_2))
A(row+1*5+column_2)=0;
這樣好像只能判斷每個行數一樣的
但不能判斷345 12345這種狀況
不知道要怎麼處理 謝謝

元素包含就完全不知道怎麼下手了

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.236.1
EdisonX:這問題好面熟.. 02/03 17:18
EdisonX:請再多說明「元素範圍」。 02/03 17:19
tjjh89017:用Python算(誤) 有這疑問+1 02/03 17:24
coolcomm:不能用map嗎 02/03 17:37
cutekid:你能做出集合交集,應該就可以做出集合包含 02/03 18:53
cutekid:元素包含:把每一個元素所在集合,另獨立出新的一群集合 02/03 18:55
cutekid:針對這群新集合,再做集合包含即可 02/03 18:56
loveme00835:http://ppt.cc/0QpW C++ 02/03 19:42
loveme00835:更正 @@ http://ppt.cc/xgsy 02/03 19:56
EdisonX:原 po 用 C , 要仿成 C++ map 可能有點複雜了 02/03 20:45
pcyu16:或許可以在比對的時候對0做處理 或是用陣列維護集合大小 02/03 21:37
pcyu16:其實敘述還有缺一些細節 例如說元素順序是否重要 02/03 21:38
pcyu16:還有元素的可能值範圍 以及是否需要考慮時間或空間複雜度 02/03 21:39
pcyu16:看起來有點像是練習 array 用的題目@@" 02/03 21:41
loveme00835:好好加油... http://ppt.cc/IDxp 解題還有語言限制就 02/03 22:23
loveme00835:不想解了, 如果都完全符合要求乾脆幫你做完算了 02/03 22:23
EdisonX: loveme~ 太有心了 02/03 22:30
loveme00835:當你還在用array硬幹資料結構的時候, 人家都已經用ADT 02/03 22:36
loveme00835:飛上天了 02/03 22:36
EatDreamBoy:謝謝 我會好好想想的... 02/03 23:13
CP64:看了第三遍才看懂在問啥orz 02/03 23:27
EatDreamBoy:不過dev c compile不過QQ 02/04 00:10
pcyu16:你該換編譯器.. 02/04 01:48
loveme00835:編譯器選項加一下 -std=c99 如果再不行你可能要換版本 02/04 08:43
loveme00835:或者修語法了... 預設是用20年前的標準 02/04 08:44
EatDreamBoy:謝謝 我在換個編譯器試試 02/04 09:57

你可能也想看看

搜尋相關網站