Java 通过从每组中取一个值来计算配对集
我试图计算可能的成对数,这可以通过从两个集合中取值来实现。没有人设定重复。我还尝试使用JavaSet实现它。但我被困在逻辑上,如何计算这种可能的组合 问题示例:Java 通过从每组中取一个值来计算配对集,java,algorithm,set,Java,Algorithm,Set,我试图计算可能的成对数,这可以通过从两个集合中取值来实现。没有人设定重复。我还尝试使用JavaSet实现它。但我被困在逻辑上,如何计算这种可能的组合 问题示例: Input: Set 1: [0, 1, 4] Set 2: [2, 3] Set None: [] 这里,可能的对组合是[0,2],[0,3],[1,2],[1,3],[4,2],[4,3] Output: 6 combination to choose pair by taking one value from each set
Input:
Set 1: [0, 1, 4]
Set 2: [2, 3]
Set None: []
这里,可能的对组合是[0,2],[0,3],[1,2],[1,3],[4,2],[4,3]
Output:
6 combination to choose pair by taking one value from each set
以下是代码:
在这里,可能的对组合是[0,1]、[0,3]、[2,1]、[2,3],与前面一样,但由于它设置为“无”,因此它将在“集-无”之间创建集作为额外的,如[1,3]
Output:
5 combination to choose pair by taking one value from each set
这里可能是这样的答案,总组合=(集合1和集合2与乘积的可能组合)+(集合1和集合2与集合无的可能组合)+(集合无与不同值的所有可能组合)
如果是,如何计算。输入范围将在1到10^5之间。谢谢。要计算组合的总数,您只需使用
int a = set1.size() * set2.size();
要计算
n
元素对的总数,可以使用公式(n*n-n)/2
,因此在您的示例中可能是
int x = setNone.size();
int b = (x * x - x) / 2
你现在的逻辑如何?你写代码了吗?是的。问题要大得多。现在,我有两个
集合set1,set2
保存着像上面描述的输入一样的值。这是一个好的开始。请编辑您的问题,并向我们展示您的代码,以便我们能够为您提供具体帮助。好的。当然我很快会补充的。好吧,你现在的具体问题是什么?为什么不使用set.size()
将两个集合的大小相乘呢?
int a = set1.size() * set2.size();
int x = setNone.size();
int b = (x * x - x) / 2