Combinations generator
This combinations calculator generates all possible combinations of m elements from the set of n elements.
This content is licensed under Creative Commons Attribution/Share-Alike License 3.0 (Unported). That means you may freely redistribute or modify this content under the same license conditions and must attribute the original author by placing a hyperlink from your site to this work https://planetcalc.com/3757/. Also, please do not modify any references to the original work (if any) contained in this content.
For example, if you have a set from 3 elements, {A, B, C}, the all possible combinations of size 2 will be {A,B}, {A,C} and {B,C}. That is, combination here refers to the combination of n things taken m at a time without repetition. The total number of possible combinations, as shown in Combinatorics – combinations, arrangements and permutations, is
.
To use the combinations generator below, you need to fill the set (by default it consists of A, B, C, D, and E elements), and enter combination size. All combinations will be generated using a lexicographic algorithm. The description of the algorithm used by the generator can be found below the calculator.
Combinations generator algorithm
Combinations are generated in lexicographical order. The algorithm uses indexes of the elements of the set. Here is how it works on example:
Suppose we have a set of 5 elements with indexes 1 2 3 4 5 (starting from 1), and we need to generate all combinations of size m = 3.
First, we initialize the first combination of size m - with indexes in ascending order
1 2 3
Then we check the last element (i = 3). If its value is less than n - m + i, it is incremented by 1.
1 2 4
Again we check the last element, and since it is still less than n - m + i, it is incremented by 1.
1 2 5
Now it has the maximum allowed value: n - m + i = 5 - 3 + 3 = 5, so we move on to the previous element (i = 2).
If its value less than n - m + i, it is incremented by 1, and all following elements are set to value of their previous neighbor plus 1
1 (2+1)3 (3+1)4 = 1 3 4
Then we again start from the last element i = 3
1 3 5
Back to i = 2
1 4 5
Now it finally equals n - m + i = 5 - 3 + 2 = 4, so we can move to first element (i = 1)
(1+1)2 (2+1)3 (3+1)4 = 2 3 4
And then,
2 3 5
2 4 5
3 4 5 - and it is the last combination since all values are set to the maximum possible value of n - m + i.
Comments