CombinatoricsΒΆ
Example that demonstrates how to compute all the combinations and permutations of a set. Each variant is printed. See example output below.
1public static void main( String[] args ) {
2 List<String> words = new ArrayList<String>();
3 words.add("cat");
4 words.add("dog");
5 words.add("bird");
6 words.add("moose");
7
8 // Demonstration of going through all of the sets combinations
9 var combinations = new Combinations<String>(words, 2);
10
11 long N = combinations.computeTotalCombinations();
12 System.out.println("Total number of combinations = " + N + "\n");
13 var bucket = new ArrayList<String>();
14 int i = 0;
15 do {
16 combinations.getBucket(bucket);
17 System.out.printf("i = %2d || ", i);
18 for (String s : bucket) {
19 System.out.print(s + " ");
20 }
21 System.out.println();
22 i++;
23 } while (combinations.next());
24
25 System.out.println("\nReverse");
26 i = 0;
27 do {
28 combinations.getBucket(bucket);
29
30 System.out.printf("i = %2d || ", i);
31 for (String s : bucket) {
32 System.out.print(s + " ");
33 }
34 System.out.println();
35 i++;
36 } while (combinations.previous());
37
38 // Demonstration of going through all of the sets permutations
39 Permute<String> permute = new Permute<String>(words);
40
41 N = permute.getTotalPermutations();
42 System.out.println("\n\nTotal number of permutations = " + N + "\n");
43 i = 0;
44 do {
45 permute.getPermutation(bucket);
46 System.out.printf("i = %2d || ", i);
47 for (String s : bucket) {
48 System.out.print(s + " ");
49 }
50 System.out.println();
51 i++;
52 } while (permute.next());
53
54 System.out.println("\nReverse");
55 i = 0;
56 do {
57 permute.getPermutation(bucket);
58
59 System.out.printf("i = %2d || ", i);
60 for (String s : bucket) {
61 System.out.print(s + " ");
62 }
63 System.out.println();
64 i++;
65 } while (permute.previous());
66}
Output:
Total number of combinations = 6
i = 0 || cat dog
i = 1 || cat bird
i = 2 || cat moose
i = 3 || dog bird
i = 4 || dog moose
i = 5 || bird moose
Reverse
i = 0 || bird moose
i = 1 || dog moose
i = 2 || dog bird
i = 3 || cat moose
i = 4 || cat bird
i = 5 || cat dog
Total number of permutations = 24
i = 0 || cat dog bird moose
i = 1 || cat dog moose bird
i = 2 || cat bird dog moose
i = 3 || cat bird moose dog
i = 4 || cat moose bird dog
i = 5 || cat moose dog bird
i = 6 || dog cat bird moose
i = 7 || dog cat moose bird
i = 8 || dog bird cat moose
i = 9 || dog bird moose cat
i = 10 || dog moose bird cat
i = 11 || dog moose cat bird
i = 12 || bird dog cat moose
i = 13 || bird dog moose cat
i = 14 || bird cat dog moose
i = 15 || bird cat moose dog
i = 16 || bird moose cat dog
i = 17 || bird moose dog cat
i = 18 || moose dog bird cat
i = 19 || moose dog cat bird
i = 20 || moose bird dog cat
i = 21 || moose bird cat dog
i = 22 || moose cat bird dog
i = 23 || moose cat dog bird
Reverse
i = 0 || moose cat dog bird
i = 1 || moose cat bird dog
i = 2 || moose bird cat dog
i = 3 || moose bird dog cat
i = 4 || moose dog cat bird
i = 5 || moose dog bird cat
i = 6 || bird moose dog cat
i = 7 || bird moose cat dog
i = 8 || bird cat moose dog
i = 9 || bird cat dog moose
i = 10 || bird dog moose cat
i = 11 || bird dog cat moose
i = 12 || dog moose cat bird
i = 13 || dog moose bird cat
i = 14 || dog bird moose cat
i = 15 || dog bird cat moose
i = 16 || dog cat moose bird
i = 17 || dog cat bird moose
i = 18 || cat moose dog bird
i = 19 || cat moose bird dog
i = 20 || cat bird moose dog
i = 21 || cat bird dog moose
i = 22 || cat dog moose bird
i = 23 || cat dog bird moose