[問題] 一個挑選的棘手問題已回收

看板MATLAB作者 (NO SURPRISES)時間16年前 (2008/09/07 15:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
各位板上高手大家好 我有一個問題想請教大家 這幾天想很久了仍然不知有啥好的解決方法 就是我現在手邊有一組 154個的1x4列向量 每一個列向量內容分別是1~32的整數任取四個所組成 也就是說,可能的形式如下: 向量1: 1 2 10 13 向量2: 1 2 19 30 . . . 向量154: 23 26 29 31 這154個向量一定不會有重複的, 然後只有可能向量之間彼此有幾個元素一樣 我要做的事情是 在這154個向量之中 找出8組列向量 這8組向量裡面的元素都不一樣, 所以剛好組成有8x4=32個元素,包含1~32的整數 上述154個向量的檔案位於: http://0rz.tw/774HY 當然這樣的情況 或許會有好幾種可能 例如向量1 3 5 7 9 11 13 15剛好符合, 而向量2 4 6 8 10 12 14 16也符合。 如果是這樣的話,我希望能得知所有的可能組合情形。 也或許 在我提供的檔案之中,完全無法找到8組列向量符合我的需求。 如此的話, 希望能得知任7組只要是彼此不同元素的向量即可。 想了好幾天了 真的不知道要怎麼去寫這樣的程式, 我目前想到的可能寫法是: (1)先利用向量1去一一比對底下的向量2~向量154 然後只要2~154有包含任一向量一的其中元素 就刪除, (2)然後就剩下沒重複的,在取剩下之中的第一個當作第二個比對向量 重複(1),再去比對底下的向量,有重複再刪除 (3)如此上述步驟重複,假如無法達到比出8組向量, 例如找到第三個不重複向量時,剩下的就沒有不重複元素的向量了, 則回到第二個不重複向量當時情形,原本是選第一個不重複向量 當作第二個比對向量,此時改成第二個不重複向量當作第二個比對向量, 然後重複上述步驟。 (4)以此類推,找出可能情形 上述的想法是我猜想可能的做法, 但我覺得我這樣想很複雜,程式很難寫 所以想請教各位高手, 是否有其他的解決方式呢? 萬分感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.43.136 ※ 編輯: arksbubble 來自: 220.136.43.136 (09/07 16:09)
文章代碼(AID): #18muZCzf (MATLAB)
文章代碼(AID): #18muZCzf (MATLAB)