Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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生成给定集合的nCr组合_Java_Combinations_Ncr - Fatal编程技术网

用java生成给定集合的nCr组合

用java生成给定集合的nCr组合,java,combinations,ncr,Java,Combinations,Ncr,我想要生成给定集合的nCr组合的java实现。 e、 g如果集合为{java,php,.net,python} 程序应返回给定集合的所有可能的nCr集合。自适应,最多可工作n=64 List<String> inputs; List<List<String>> ncr = new ArrayList<List<String>>(); for (long x = (1 << r) - 1; (x >>> r)

我想要生成给定集合的nCr组合的java实现。 e、 g如果集合为{java,php,.net,python} 程序应返回给定集合的所有可能的nCr集合。

自适应,最多可工作n=64

List<String> inputs;
List<List<String>> ncr = new ArrayList<List<String>>();
for (long x = (1 << r) - 1; (x >>> r) == 0;) {
  // x contains a 1 bit for each input we should choose;
  // iterate over the 1 bits of x
  long y = x;
  List<String> combination = new ArrayList<String>();
  for (int i = Long.numberOfTrailingZeros(y);
       y != 0; i = Long.numberOfTrailingZeros(y)) {
    combination.add(inputs.get(i));
    y &= ~(1 << i);
  }
  long u = x & -x;
  long v = u + x;
  x = v + ((v ^ x) / u) >>> 2;
}
自适应,最多可工作n=64

List<String> inputs;
List<List<String>> ncr = new ArrayList<List<String>>();
for (long x = (1 << r) - 1; (x >>> r) == 0;) {
  // x contains a 1 bit for each input we should choose;
  // iterate over the 1 bits of x
  long y = x;
  List<String> combination = new ArrayList<String>();
  for (int i = Long.numberOfTrailingZeros(y);
       y != 0; i = Long.numberOfTrailingZeros(y)) {
    combination.add(inputs.get(i));
    y &= ~(1 << i);
  }
  long u = x & -x;
  long v = u + x;
  x = v + ((v ^ x) / u) >>> 2;
}

这是家庭作业;如果是,请重新标记。首先你应该让我们知道你做了什么?这是家庭作业;如果是,请重新标记。首先你应该让我们知道你做了什么?