精易论坛

标题: 排列组合问题 [打印本页]

作者: 乖乖你快回来    时间: 2024-11-2 21:22
标题: 排列组合问题
我数据是这样的:
数组A = {“A1+A2”,"B1+B2","C1","D1+D2"}

也可能会变成  数组B = {“A1”,"B1","C1+C2","D1"}

也可能会变成  数组C = {“A1”,"B1","C1"}

然后需求就是假如出现上面任意数组类型:
=============================
当选取2个组合时,会得出如下:
        A1B1 , A1B2,A1C1,A1D1,A1D2
        A2B1 , A2B2,A2C1,A2D1,A2D2
        B1C1 , B1D1,B1D2,B2C1 , B2D1,B2D2
        C1D1,C2D2


如果出现数组B这种,使用某个方法也能直接得出
A1B1,A1C1,A1C2,A1D1
B1C1,B1C2,B1D1
C1D1,C2D2
===================
当选取3个组合时,会得出如下:
  A1B1C1
A2B1C1
A1B2C1
A2B2C1
  更多就拼不出来了,主要是脑容量不够

感谢大神!



作者: 明天自然醒    时间: 2024-11-2 21:22
要实现遍历多层嵌套的相关案例,你还在一行一行手敲十几个循环?
不如实现一个优雅的迭代器~无非就是一个进位器,教你如何十几行代码解决

https://125.confly.eu.org/thread-14839187-1-1.html
作者: LEOONL    时间: 2024-11-2 21:28
排列组合数.e (5.38 KB, 下载次数: 22)

作者: 乖乖你快回来    时间: 2024-11-2 21:34
LEOONL 发表于 2024-11-2 21:28

请问想选取2个或3个的组合时应该设置哪个变量或参数啊?
作者: LEOONL    时间: 2024-11-2 21:39
乖乖你快回来 发表于 2024-11-2 21:34
请问想选取2个或3个的组合时应该设置哪个变量或参数啊?

getCurAlphabet (letter, result, preStr, 个数, 假)
作者: 乖乖你快回来    时间: 2024-11-2 21:46
LEOONL 发表于 2024-11-2 21:39
getCurAlphabet (letter, result, preStr, 个数, 假)

我改成2,不行,没输出 getCurAlphabet (letter, result, preStr, 2, 假)
作者: LEOONL    时间: 2024-11-2 22:03
乖乖你快回来 发表于 2024-11-2 21:46
我改成2,不行,没输出 getCurAlphabet (letter, result, preStr, 2, 假)

1.e (9.31 KB, 下载次数: 4)

作者: 乖乖你快回来    时间: 2024-11-2 22:21
LEOONL 发表于 2024-11-2 22:03

我测试了下,和需求只差一点点了,就是比如大神你设置的数组是 文本 = { “A1”, “B1”, “C1+C2”, “D1” }
选取2种组合时,会出现 C1,C2 和 C2,C1这种, 我需求C1 和C2只会和其它的A1  B1  D1  进行组合 ,这个用+连接的多个成员,分开后不会和自身的成员进行组合
作者: zl2017    时间: 2024-11-2 23:48
组合.e (9.19 KB, 下载次数: 4)
作者: LEOONL    时间: 2024-11-3 10:26
乖乖你快回来 发表于 2024-11-2 22:21
我测试了下,和需求只差一点点了,就是比如大神你设置的数组是 文本 = { “A1”, “B1”, “C1+C2”, “ ...

2.e (963.55 KB, 下载次数: 4)

作者: 嫂子    时间: 2024-11-3 13:45
数据预处理

最后归根结底按还是个  排列组合算法而已




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4