[問題] 字串組合的重新歸納

看板Programming作者 (.............)時間9年前 (2015/01/13 22:01), 9年前編輯推噓3(3019)
留言22則, 4人參與, 最新討論串1/3 (看更多)
不確定此問題是否符合本板板規,如有不妥,還請告知 --------------------------------------------------------------- 右側組合產生的方式 即將左側各組取一元素 第一組組合 第二組組合 第三組組合 排列組合有 A/B A/B/C A/B --> A A A B A A A A B B A B A B A B B A A B B B B B A C A B C A A C B B C B 想請問各位前輩, (1)如果今天要由右側的12種組合重新歸納回左側,是否可以程式實現? 一般都是從左到右的展開,反向實在想不到好的方式 目前嘗試用提相同項的方式在處理,不過歸納時不但需確認字串一致、位置亦須一致 且要不斷跑迴圈直到沒有共同項時即停止,除此之外,也會碰到問題(2)的窘境 希望各位大家可以給個方向 (2)倘若右側任一刪除兩、三組合數,歸納回左側時,又該如何做才是最有效的歸納呢? 新增狀況(1)&(2)比較範例,在此範例中將會看到若單純用聯集的方式 狀況(2)無法歸納為正確的組合 狀況(1) 排列組合有以下8組 第一組 第二組 第三組 a a a a a b a b a a b b b a a --> a/b a/b a/b b a b b b a b b b 狀況(2) 排列組合有以下7組 第一組 第二組 第三組 a a b a b a a b b a a b b a a --> b a/b a/b b a b a b a/b b b a b b b 狀況(1)確實在使用聯集時,可以歸納為右側 但在狀況(2)中若用相同的方式,仍是產出 a/b a/b a/b 這三組歸納結果 若以此答案展開狀況(2),會發現多了一組a a a 麻煩各位指導了~ 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.62.132 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1421157716.A.FAF.html

01/13 23:32, , 1F
看不懂那12個排列是怎得來的
01/13 23:32, 1F

01/13 23:33, , 2F
是各組依序選出一個字嗎?
01/13 23:33, 2F

01/13 23:34, , 3F
是的話那不是每欄都選出獨特的字就好了
01/13 23:34, 3F

01/13 23:34, , 4F
,你的問題是什麼?
01/13 23:34, 4F

01/14 00:51, , 5F
需要歸納什麼?不就是集合處理即可
01/14 00:51, 5F

01/14 07:28, , 6F
to C大/y大,右側排列組合確實是由左側各組
01/14 07:28, 6F

01/14 07:29, , 7F
依序選出,所以若是以我文中第一組範例,確實
01/14 07:29, 7F

01/14 07:30, , 8F
可以用"各行"各自取聯集,歸納回左側,但無法
01/14 07:30, 8F

01/14 07:32, , 9F
用相同方式處理狀況(2),當時沒交代清楚
01/14 07:32, 9F

01/14 07:33, , 10F
我會在原文中重新加入狀況(2)的例子
01/14 07:33, 10F
※ 編輯: rdon (218.80.235.45), 01/14/2015 14:22:58 ※ 編輯: rdon (218.80.235.45), 01/14/2015 14:26:08 ※ 編輯: rdon (218.80.235.45), 01/14/2015 14:26:31 ※ 編輯: rdon (218.80.235.45), 01/14/2015 14:27:03

01/14 15:58, , 11F
那是你輸入本身就是錯的 排列數=各組元
01/14 15:58, 11F

01/14 16:00, , 12F
素總數之乘積. 而 7 只能拆成 1 x 1 x 7
01/14 16:00, 12F

01/14 16:01, , 13F
可惜你輸入資料裡, 每欄都含2種元素.
01/14 16:01, 13F

01/14 16:01, , 14F
結論是你想要的歸納結果"並不存在"
01/14 16:01, 14F

01/14 19:32, , 15F
b大,我能理解排列數=各組元素總數之乘積,
01/14 19:32, 15F

01/14 19:33, , 16F
所以在狀況(2)時,並非僅歸納為一列,而是三列
01/14 19:33, 16F

01/14 19:34, , 17F
各行依排列數=各組元素總數乘積展開,可以
01/14 19:34, 17F

01/14 19:35, , 18F
看到第一行為一組,第二行可展成四組,第三行
01/14 19:35, 18F

01/14 19:36, , 19F
為兩組,即等於原先排列組合的七種組合
01/14 19:36, 19F

01/14 19:37, , 20F
更正一下,後面三個加註內,將'列'誤寫為'行'
01/14 19:37, 20F

01/16 10:25, , 21F
哦,你修改了第二個問題。看起來,就是要
01/16 10:25, 21F

01/16 10:28, , 22F
圈出幾個子集做連集,或者弄出差集
01/16 10:28, 22F
文章代碼(AID): #1KjILK-l (Programming)
文章代碼(AID): #1KjILK-l (Programming)