在以下情况下,我想知道STL multiset,map和hash map类的Big O表示法的复杂性:
该R函数expand.grid返回所提供参数的元素之间的所有可能组合.例如
> expand.grid(c("aa", "ab", "cc"), c("aa", "ab", "cc"))
Var1 Var2
1 aa aa
2 ab aa
3 cc aa
4 aa ab
5 ab ab
6 cc ab
7 aa cc
8 ab cc
9 cc cc
Run Code Online (Sandbox Code Playgroud)
你知道一种直接获得的有效方法(所以没有任何行比较之后expand.grid)只提供所提供的矢量之间的"唯一"组合吗?输出将是
Var1 Var2
1 aa aa
2 ab aa
3 cc aa
5 ab ab
6 cc ab
9 cc cc
Run Code Online (Sandbox Code Playgroud)
编辑每个元素与自身的组合最终可以从答案中丢弃.我实际上并不需要它在我的程序中,即使(数学上)aa aa将是一个元素Var1和另一个元素之间的一个(常规)唯一组合var2.
解决方案需要从两个向量生成元素对(即每个输入向量中的一个 - 以便它可以应用于多于2个输入)
给定一个三元组列表,例如:[(1,2,3), (4,5,6), (7,8,9)]如何计算所有可能的组合和子集组合?
在这种情况下,结果应如下所示:
[
(1), (1,4), (1,5), (1,6), (1,7), (1,8), (1,9), (1,4,7), (1,4,8), (1,4,9), (1,5,7), (1,5,8), (1,5,9), (1,6,7), (1,6,8), (1,6,9),
(2), ...,
(3), ...,
(4), (4,7), (4,8), (4,9),
(5), (5,7), (5,8), (5,9),
(6), (6,7), (6,8), (6,9),
(7), (8), (9)
]
Run Code Online (Sandbox Code Playgroud)
(1,2),(4,6)或(7,8,9))我有两个向量,我试图找到向量 1 中的 3 个元素和向量 2 中的 2 个元素的所有唯一组合。我已经尝试过以下代码。
V1 = combn(1:5, 3) # 10 combinations in total
V2 = combn(6:11, 2) # 15 combinations in total
Run Code Online (Sandbox Code Playgroud)
如何将V1和V2组合起来,使得总共有10 * 15 = 150种组合?谢谢。