作者yauhh (哟)
看板Programming
标题Re: [问题] 请问一个穷举法的问题 (java)
时间Wed Apr 24 20:47:21 2013
※ 引述《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 为区间
长度.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.44.169
1F:推 bob123:大大这答案一点都不简短阿XD 116.59.250.228 04/30 12:54
2F:→ bob123:我想原po需要的是google java lattice 这 116.59.250.228 04/30 12:55
3F:→ yauhh:明明就是个简短的答案,内容说真的很多吗? 118.167.55.239 05/01 09:31
4F:→ bob123:哈哈 其实也没有啦 请不要介意~220.132.156.250 05/06 04:42