Tool to generate combinations. In mathematics, a choice of k elements out of n distinguishable objects (k choose n), where the order does not matter, is represented by a list of elements, which cardinal is the binomial coefficient.
Combination N Choose K - dCode
Tag(s) : Combinatorics
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
To get a list of combinations with a guaranteed minimum of numbers (also called reduced lottery draw), dCode has a tool for that:
To draw random numbers (Lotto, Euromillions, Superlotto, etc.)
A combination of $ k $ among $ n $ is the name given to the number of distinct ways of choosing $ k $ elements among another set of $ n $ elements (with $ n \ge k $), without taking into account the order.
The combination is denoted by $ C_n^k $ or $ \binom{n}{k} $.
The generator allows selection of values $ k $ and $ n $, and generates possible lists of combinations with digits or letters (or a custom list).
Example: 4 choose 2 generates: (1,2),(1,3),(1,4),(2,3),(2,4),(3,4)
The generation is limited to thousands of combinations. Combinatorics can introduce huge numbers, this limit secures the computation server.
To generate larger lists, dCode can generate them upon (paid) request.
The calculation uses the binomial coefficient: $$ C_n^k = \binom{n}{k} = \frac{n!}{k!(n-k)!} $$
Combinations uses calculus of factorials (the exclamation mark: !).
3 choose 2 = 3 combinations | (1,2)(1,3)(2,3) |
4 choose 2 = 6 combinations | (1,2)(1,3)(1,4)(2,3)(2,4)(3,4) |
5 choose 2 = 10 combinations | (1,2)(1,3)(1,4)(1,5)(2,3)(2,4)(2,5)(3,4)(3,5)(4,5) |
6 choose 2 = 15 combinations | (1,2)(1,3)(1,4)(1,5)(1,6)(2,3)(2,4)(2,5)(2,6)(3,4)(3,5)(3,6)(4,5)(4,6)(5,6) |
7 choose 2 = 21 combinations | (1,2)(1,3)(1,4)(1,5)(1,6)(1,7)(2,3)(2,4)(2,5)(2,6)(2,7)(3,4)(3,5)(3,6)(3,7)(4,5)(4,6)(4,7)(5,6)(5,7)(6,7) |
8 choose 2 = 28 combinations | (1,2)(1,3)(1,4)(1,5)(1,6)(1,7)(1,8)(2,3)(2,4)(2,5)(2,6)(2,7)(2,8)(3,4)(3,5)(3,6)(3,7)(3,8)(4,5)(4,6)(4,7)(4,8)(5,6)(5,7)(5,8)(6,7)(6,8)(7,8) |
9 choose 2 = 36 combinations | (1,2)(1,3)(1,4)(1,5)(1,6)(1,7)(1,8)(1,9)(2,3)(2,4)(2,5)(2,6)(2,7)(2,8)(2,9)(3,4)(3,5)(3,6)(3,7)(3,8)(3,9)(4,5)(4,6)(4,7)(4,8)(4,9)(5,6)(5,7)(5,8)(5,9)(6,7)(6,8)(6,9)(7,8)(7,9)(8,9) |
4 choose 3 = 4 combinations | (1,2,3)(1,2,4)(1,3,4)(2,3,4) |
5 choose 3 = 10 combinations | (1,2,3)(1,2,4)(1,2,5)(1,3,4)(1,3,5)(1,4,5)(2,3,4)(2,3,5)(2,4,5)(3,4,5) |
6 choose 3 = 20 combinations | (1,2,3)(1,2,4)(1,2,5)(1,2,6)(1,3,4)(1,3,5)(1,3,6)(1,4,5)(1,4,6)(1,5,6)(2,3,4)(2,3,5)(2,3,6)(2,4,5)(2,4,6)(2,5,6)(3,4,5)(3,4,6)(3,5,6)(4,5,6) |
7 choose 3 = 35 combinations | (1,2,3)(1,2,4)(1,2,5)(1,2,6)(1,2,7)(1,3,4)(1,3,5)(1,3,6)(1,3,7)(1,4,5)(1,4,6)(1,4,7)(1,5,6)(1,5,7)(1,6,7)(2,3,4)(2,3,5)(2,3,6)(2,3,7)(2,4,5)(2,4,6)(2,4,7)(2,5,6)(2,5,7)(2,6,7)(3,4,5)(3,4,6)(3,4,7)(3,5,6)(3,5,7)(3,6,7)(4,5,6)(4,5,7)(4,6,7)(5,6,7) |
5 choose 4 = 5 combinations | (1,2,3,4)(1,2,3,5)(1,2,4,5)(1,3,4,5)(2,3,4,5) |
6 choose 4 = 15 combinations | (1,2,3,4)(1,2,3,5)(1,2,3,6)(1,2,4,5)(1,2,4,6)(1,2,5,6)(1,3,4,5)(1,3,4,6)(1,3,5,6)(1,4,5,6)(2,3,4,5)(2,3,4,6)(2,3,5,6)(2,4,5,6)(3,4,5,6) |
7 choose 4 = 35 combinations | (1,2,3,4)(1,2,3,5)(1,2,3,6)(1,2,3,7)(1,2,4,5)(1,2,4,6)(1,2,4,7)(1,2,5,6)(1,2,5,7)(1,2,6,7)(1,3,4,5)(1,3,4,6)(1,3,4,7)(1,3,5,6)(1,3,5,7)(1,3,6,7)(1,4,5,6)(1,4,5,7)(1,4,6,7)(1,5,6,7)(2,3,4,5)(2,3,4,6)(2,3,4,7)(2,3,5,6)(2,3,5,7)(2,3,6,7)(2,4,5,6)(2,4,5,7)(2,4,6,7)(2,5,6,7)(3,4,5,6)(3,4,5,7)(3,4,6,7)(3,5,6,7)(4,5,6,7) |
6 choose 5 = 6 combinations | (1,2,3,4,5)(1,2,3,4,6)(1,2,3,5,6)(1,2,4,5,6)(1,3,4,5,6)(2,3,4,5,6) |
7 choose 5 = 21 combinations | (1,2,3,4,5)(1,2,3,4,6)(1,2,3,4,7)(1,2,3,5,6)(1,2,3,5,7)(1,2,3,6,7)(1,2,4,5,6)(1,2,4,5,7)(1,2,4,6,7)(1,2,5,6,7)(1,3,4,5,6)(1,3,4,5,7)(1,3,4,6,7)(1,3,5,6,7)(1,4,5,6,7)(2,3,4,5,6)(2,3,4,5,7)(2,3,4,6,7)(2,3,5,6,7)(2,4,5,6,7)(3,4,5,6,7) |
By principle, combinations do not take into account order (1,2) = (2,1). Use the function permutations to get possible ordered combinations.
dCode has a dedicated tool for combinations with repetitions.
To calculate the probabilities of winning in games of chance such as drawing random games, combinations are the most suitable tools.
To win at EuroMillions, a player ticks 5 boxes out of 50 (50 choose 5), then 2 stars out of 11 (11 choose 2).
Example: Calculate the number of combinations of (50 choose 5) = 2 118 760, and multiply by (11 choose 2) = 55 for a total of 116 531 800 combinations. The probability of winning is therefore 1 in 116 million.
To win at Powerball, pick 5 out of 69 (69 choose 5), then pick 1 out of 26 (26 choose 1).
Example: Calculate the number of combinations of (69 choose 5) = 11 238 513, and multiply by (26 choose 1) = 26 for a total of 292 201 338 combinations. The probability of winning is therefore 1 in 292 million.
To win at EuroDreams, the draw is 6 numbers from 40, then 1 number from 5.
Example: Calculate the number of combinations of (40 choose 6) = 3 838 380, and multiply by (1 among 5) = 5, for a total of 19 191 900 combinations. The probability of winning is therefore 1 chance in 19 million.
Many books describes strategies for lotto or lottery such as here (affiliate link) One of the strategies is to play covering designs systems.
If $ k = 0 $, then 0 item are wanted, there is an empty result with 0 item. So $$ \binom{n}{0} = 1 $$
If $ n = 0 $, then there is 0 item, impossible to pick $ k $, so there are no results. So $$ \binom{0}{k} = 0 $$
By convention 0 choose 0 is 1: $$ \binom{0}{0} = 1 $$
// pseudo code
start count_combinations( k , n ) {
if (k = n) return 1;
if (k > n/2) k = n-k;
res = n-k+1;
for i = 2 by 1 while i < = k
res = res * (n-k+i)/i;
end for
return res;
end// language C
double factorial(double x) {
double i;
double result=1;
if (x >= 0) {
for(i=x;i>1;i--) {
result = result*i;
}
return result;
}
return 0; // error
}
double count_combinations(double x,double y) {
double z = x-y;
return factorial(x)/(factorial(y)*factorial(z));
}
// VBA
Function Factorial(n As Integer) As Double
Factorial = 1
For i = 1 To n
Factorial = Factorial * i
Next
End Function
Function NbCombinations (k As Integer, n As Integer) As Double
Dim z As Integer
z = n - k
NbCombinations = Factorial(n) / (Factorial(k) * Factorial(z))
End Function
// javascript
function combinations(a) { // a = new Array(1,2)
var fn = function(n, src, got, all) {
if (n == 0) {
if (got.length > 0) {
all[all.length] = got;
}
return;
}
for (var j = 0; j < src.length; j++) {
fn(n - 1, src.slice(j + 1), got.concat([src[j]]), all);
}
return;
}
var all = [];
for (var i=0; i < a.length; i++) {
fn(i, a, [], all);
}
all.push(a);
return all;
}
dCode retains ownership of the "Combination N Choose K" source code. Any algorithm for the "Combination N Choose K" algorithm, applet or snippet or script (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or any "Combination N Choose K" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) or any database download or API access for "Combination N Choose K" or any other element are not public (except explicit open source licence like Creative Commons). Same with the download for offline use on PC, mobile, tablet, iPhone or Android app.
Reminder: dCode is an educational and teaching resource, accessible online for free and for everyone.
The content of the page "Combination N Choose K" and its results may be freely copied and reused, including for commercial purposes, provided that dCode.fr is cited as the source.
Exporting the results is free and can be done simply by clicking on the export icons ⤓ (.csv or .txt format) or ⧉ (copy and paste).
To cite dCode.fr on another website, use the link:
In a scientific article or book, the recommended bibliographic citation is: Combination N Choose K on dCode.fr [online website], retrieved on 2025-04-15,