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*!

⮞ Go to: Combinations with Repetition

To get a list of combinations with a guaranteed minimum of numbers (also called reduced lottery draw), dCode has a tool for that:

⮞ Go to: Covering Design for Lottery

To draw random numbers (Lotto, Euromillions, Superlotto, etc.)

The generator allows to select values of $ k $ and $ n $, and generates possible list 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 2000 lines. Combinatorics can introduce huge numbers, this limits secures the computation server.

To generates large 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 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.

Many books describes strategies for lotto or lottery such as here (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 $$ \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 online 'Combination N Choose K' tool source code. Except explicit open source licence (indicated CC / Creative Commons / free), any 'Combination N Choose K' algorithm, applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any 'Combination N Choose K' function (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and no data download, script, copy-paste, or API access for 'Combination N Choose K' will be for free, same for offline use on PC, tablet, iPhone or Android ! dCode is free and online.

Please, check our dCode Discord community for help requests!

NB: for encrypted messages, test our automatic cipher identifier!

- Combinations Generator
- Combinations with Order (1,2≠2,1)
- Combinations with Repeated Items
- Combinations Count Calculator
- Combinations and Lottery Games
- How to generate combinations of n choose k?
- How to count the number of combinations of n choose k?
- How to take into account the order of the elements?
- How to get combinations with repetitions?
- How many combinations is there to lottery/euromillions?
- Why k cannot be equal to zero 0?
- Why n cannot be equal to zero 0?
- What is the value of 0 choose 0?
- What is the algorithm for counting combinations?
- What is the algorithm to generate combinations?

combination,choose,n,k,probability,draw,lotto,euromillion,random,binomial,coefficient

Source : https://www.dcode.fr/combinations

© 2021 dCode — The ultimate 'toolkit' to solve every games / riddles / geocaching / CTF.

Feedback

▲
Thanks to your feedback and relevant comments, dCode has developed the best 'Combination N Choose K' tool, so feel free to write! Thank you!