Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过从每组中取一个值来计算配对集_Java_Algorithm_Set - Fatal编程技术网

Java 通过从每组中取一个值来计算配对集

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

我试图计算可能的成对数,这可以通过从两个集合中取值来实现。没有人设定重复。我还尝试使用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
以下是代码:

在这里,可能的对组合是[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