[問題] 排列組合問題

作者: OpenGoodHate (什麼東西什麼東西)   2017-11-14 19:28:29
目前有三個陣列
a=[a1 a2 a3]
b=[b1 b2 b3 b4 b5]
c=[c1 c2 c3]
需要組合出
(a1 c1) (a1 c2) (a1 c3)
(a2 c1) (a2 c2) (a2 c3)
(a3 c1) (a3 c2) (a3 c3)
(a1 b1 c1) (a1 b1 c2) (a1 b1 c3)
(a2 b1 c1) (a2 b1 c2) (a2 b1 c3)
(a3 b1 c1) (a3 b1 c2) (a3 b1 c3)
(a1 b1 b2 c1) (a1 b2 b1 c1)
(a1 b1 b2 c2) (a1 b2 b1 c2)
(a1 b1 b2 c3) (a1 b2 b1 c3)
(a2 b1 b2 c1) (a2 b2 b1 c1)
(a2 b1 b2 c2) (a2 b2 b1 c2)
(a2 b1 b2 c3) (a2 b2 b1 c3)
(a3 b1 b2 c1) (a3 b2 b1 c1)
(a3 b1 b2 c2) (a3 b2 b1 c2)
(a3 b1 b2 c3) (a3 b2 b1 c3)
(a1 b1 b2 b3 c1) (a1 b1 b3 b2 c1)
(a1 b2 b1 b3 c1) (a1 b2 b3 b1 c1)
(a1 b3 b1 b2 c1) (a1 b3 b2 b1 c1)
(a1 b1 b2 b3 c2) (a1 b1 b3 b2 c2)
(a1 b2 b1 b3 c2) (a1 b2 b3 b1 c2)
(a1 b3 b1 b2 c2) (a1 b3 b2 b1 c2)
(a1 b1 b2 b3 c3) (a1 b1 b3 b2 c3)
(a1 b2 b1 b3 c3) (a1 b2 b3 b1 c3)
(a1 b3 b1 b2 c3) (a1 b3 b2 b1 c3)
(a2 b1 b2 b3 c1) (a2 b1 b3 b2 c1)
(a2 b2 b1 b3 c1) (a2 b2 b3 b1 c1)
(a2 b3 b1 b2 c1) (a2 b3 b2 b1 c1)
(a2 b1 b2 b3 c2) (a2 b1 b3 b2 c2)
(a2 b2 b1 b3 c2) (a2 b2 b3 b1 c2)
(a2 b3 b1 b2 c2) (a2 b3 b2 b1 c2)
(a2 b1 b2 b3 c3) (a2 b1 b3 b2 c3)
(a2 b2 b1 b3 c3) (a2 b2 b3 b1 c3)
(a2 b3 b1 b2 c3) (a2 b3 b2 b1 c3)
... 依此類推
請問列出所有狀況的排序怎麼寫會比較好
內建的Function 也行但是好像有大小限制
目前只想到a陣列跟c陣列先排完
b陣列自己跟自己排完後再把兩個結果展開結合
不過b陣列這邊目前不知道該怎麼寫
現在是matlab新手有點苦腦
UPDATE:
不好意思修正了一下
之前漏打了c3的組合
作者: OpenGoodHate (什麼東西什麼東西)   2017-11-17 22:15:00
感謝S大,目前暫時拿S大的code來修改中
作者: sunev (Veritas)   2017-11-14 21:34:00
a3 c3 沒用到?
作者: LiamIssac (Madchester)   2017-11-15 14:41:00
你應該可以理出一個規則 這樣大家才可以告訴你怎麼寫
作者: jhs710041 (沒想過)   2017-11-15 14:56:00
我完全看不出要怎麼類推...
作者: sunev (Veritas)   2017-11-15 20:22:00
n=3;bb=perms(b(1:n));[A,B,C]=ndgrid(a,1:size(bb,1),c);[A(:), bb(B(:),:), C(:)]

Links booklink

Contact Us: admin [ a t ] ucptt.com