為什麼這篇集合的運算鄉民發文收入到精華區:因為在集合的運算這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者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