Re: [問題] 請問一個窮舉法的問題 (java)

作者: yauhh (小y寶貝)   2013-04-24 20:47:21
※ 引述《azcd (鋼鐵般的決心)》之銘言:
: 請問各位大大
: 倘若隨機得到一組set(內容為等下要運用的順序,與內容值)如下:
: {1_A, 2_B, 2_C, 3_D}
: 想要轉換變成一個ArrayList是 {ABD, ACD}
: 請問該怎麼樣轉換呢?
: 謝謝!
給個很簡短的答案. 當你有 p 個 1 號物品, q 個 2 號物品以及 r 個 3 號物品,
可以先乘法求得共有 p * q * r 個合併物,以 {1_a, 1_b, 1_c, 2_d, 2_e, 3_f, 3_g}
而言,共有 3 * 2 * 2 = 12 個合併.
然後可以列12個條目,每個條目有3欄,接著,就是填空遊戲. 第一欄共有 3 個物品
a, b, c 可填,要填滿 12 條,所以每個物品填 4 條:
a _ _ b _ _ c _ _
a _ _ b _ _ c _ _
a _ _ b _ _ c _ _
a _ _ b _ _ c _ _
接著,分別在 a, b, c 各個範圍中填 d, e, 那就要想,先用 d, e 填滿 a 的 4 條,
然後用 d, e 填滿 b 的 4 條, 然後用 d, e 填滿 c 的 4 條:
a d _ b d _ c d _
a d _ b d _ c d _
a e _ b e _ c e _
a e _ b e _ c e _
然後, f, g 分別填滿 a-d, a-e, b-d, b-e, c-d, c-e 等等 6 個部份:
a d f b d f c d f
a d g b d g c d g
a e f b e f c e f
a e g b e g c e g
前後的意思就是,一開始先知道有 12 條,第 1 項物品有 3 種,所以以 4 為區間長度.
每個區間填同一樣物品,下一個區間填下一樣物品.
再來, 4 區間長度對第 2 項來說就是有 4 條的意思,第 2 項物品有 2 種,所以以 2
為區間長度.
最後, 第 3 項物品有 2 種, 要填滿第 2 項物品的區間條目 2 條, 所以以 1 為區間
長度.

Links booklink

Contact Us: admin [ a t ] ucptt.com