@Test(dataProvider = "combinations") public void allCombinations(final int n, final int k) { final Random random = new Random(); final Set<String> subsets = new HashSet<>(); for (int i = 0; i < 3000; ++i) { subsets.add(Arrays.toString(Combinatorics.subset(n, new int[k], random))); } Assert.assertEquals(subsets.size(), binomial(n, k)); }
public static int[] subset(final int n, final int k) { return subset(n, k, RandomRegistry.random()); }
Combinatorics { public static int[] subset(final int n, final int k) { return subset(n, k, RandomRegistry.random()); } }
Combinatorics { public static int[] subset(final int n, final int k) { return subset(n, k, RandomRegistry.random()); } private  Combinatorics(); }
Combinatorics { public static int[] subset(final int n, final int k) { return subset(n, k, RandomRegistry.random()); } private  Combinatorics(); static int[] subset(final int n, final int k); static int[] subset(final int n, final int k, final Random random); static int[] subset(final int[] set, final int k); static int[] subset(final int[] set, final int k, final Random random); static int[] subset(final int n, final int[] sub); static int[] subset(final int n, final int[] a, final Random random); static void checkSubSet(final int n, final int k); }
Combinatorics { public static int[] subset(final int n, final int k) { return subset(n, k, RandomRegistry.random()); } private  Combinatorics(); static int[] subset(final int n, final int k); static int[] subset(final int n, final int k, final Random random); static int[] subset(final int[] set, final int k); static int[] subset(final int[] set, final int k, final Random random); static int[] subset(final int n, final int[] sub); static int[] subset(final int n, final int[] a, final Random random); static void checkSubSet(final int n, final int k);  }