作者rdon (.............)
看板Programming
标题[问题] 字串组合的重新归纳
时间Tue Jan 13 22:01:53 2015
不确定此问题是否符合本板板规,如有不妥,还请告知
---------------------------------------------------------------
右侧组合产生的方式
即将左侧各组取一元素
第一组组合 第二组组合 第三组组合 排列组合有
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://webptt.com/cn.aspx?n=bbs/Programming/M.1421157716.A.FAF.html
1F:推 CaptainH: 看不懂那12个排列是怎得来的 111.80.46.40 01/13 23:32
2F:→ CaptainH: 是各组依序选出一个字吗? 111.80.46.40 01/13 23:33
3F:推 CaptainH: 是的话那不是每栏都选出独特的字就好了 111.80.46.40 01/13 23:34
4F:→ CaptainH: ,你的问题是什麽? 111.80.46.40 01/13 23:34
5F:推 yauhh: 需要归纳什麽?不就是集合处理即可 118.168.162.74 01/14 00:51
6F:→ rdon: to C大/y大,右侧排列组合确实是由左侧各组 222.67.211.240 01/14 07:28
7F:→ rdon: 依序选出,所以若是以我文中第一组范例,确实 222.67.211.240 01/14 07:29
8F:→ rdon: 可以用"各行"各自取联集,归纳回左侧,但无法 222.67.211.240 01/14 07:30
9F:→ rdon: 用相同方式处理状况(2),当时没交代清楚 222.67.211.240 01/14 07:32
10F:→ rdon: 我会在原文中重新加入状况(2)的例子 222.67.211.240 01/14 07:33
※ 编辑: 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
11F:→ bibo9901: 那是你输入本身就是错的 排列数=各组元 61.230.205.20 01/14 15:58
12F:→ bibo9901: 素总数之乘积. 而 7 只能拆成 1 x 1 x 7 61.230.205.20 01/14 16:00
13F:→ bibo9901: 可惜你输入资料里, 每栏都含2种元素. 61.230.205.20 01/14 16:01
14F:→ bibo9901: 结论是你想要的归纳结果"并不存在" 61.230.205.20 01/14 16:01
15F:→ rdon: b大,我能理解排列数=各组元素总数之乘积, 222.67.215.184 01/14 19:32
16F:→ rdon: 所以在状况(2)时,并非仅归纳为一列,而是三列 222.67.215.184 01/14 19:33
17F:→ rdon: 各行依排列数=各组元素总数乘积展开,可以 222.67.215.184 01/14 19:34
18F:→ rdon: 看到第一行为一组,第二行可展成四组,第三行 222.67.215.184 01/14 19:35
19F:→ rdon: 为两组,即等於原先排列组合的七种组合 222.67.215.184 01/14 19:36
20F:→ rdon: 更正一下,後面三个加注内,将'列'误写为'行' 222.67.215.184 01/14 19:37
21F:→ yauhh: 哦,你修改了第二个问题。看起来,就是要 114.42.67.20 01/16 10:25
22F:→ yauhh: 圈出几个子集做连集,或者弄出差集 114.42.67.20 01/16 10:28