[問題] 一個挑選的棘手問題已回收
各位板上高手大家好
我有一個問題想請教大家
這幾天想很久了仍然不知有啥好的解決方法
就是我現在手邊有一組 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)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章