n_choose_r.cpp File Reference

Combinations n choose r function implementation More...

`#include <cassert>`
`#include <iostream>`
Include dependency graph for n_choose_r.cpp:

## Namespaces

| math
| for std::vector

## Functions

template<class T >
T | math::n_choose_r (T n, T r)
| This is the function implementation of \( \binom{n}{r} \). More...
static void | test ()
| Test implementations. More...
int | main (int argc, char *argv[])
| Main function. More...

## Detailed Description

Combinations n choose r function implementation

A very basic and efficient method of calculating choosing r from n different choices. \( \binom{n}{r} = \frac{n!}{r! (n-r)!} \)

Author
  Tajmeet Singh

## Function Documentation

## main()

int main | ( | int | argc,
|  | char * | argv[]
| ) |  |

Main function.

Parameters

  argc | commandline argument count (ignored)
  argv | commandline array of arguments (ignored)

Returns
  0 on exit

{
test(); // executing tests
return 0;
}
test
static void test()
Test implementations.
Definition: n_choose_r.cpp:52
Here is the call graph for this function:

## test()

static void test | ( |  | ) |

static

Test implementations.

Returns
  void

{
// First test on 5 choose 2
uint8_t t = math::n_choose_r(5, 2);
assert(((void)"10 is the answer but function says otherwise.\n", t == 10));
std::cout << "First test passes." << std::endl;
// Second test on 5 choose 3
t = math::n_choose_r(5, 3);
assert(
((void)"10 is the answer but the function says otherwise.\n", t == 10));
std::cout << "Second test passes." << std::endl;
// Third test on 3 choose 2
t = math::n_choose_r(3, 2);
assert(
((void)"3 is the answer but the function says otherwise.\n", t == 3));
std::cout << "Third test passes." << std::endl;
// Fourth test on 10 choose 4
t = math::n_choose_r(10, 4);
assert(((void)"210 is the answer but the function says otherwise.\n",
t == 210));
std::cout << "Fourth test passes." << std::endl;
}
std::cout
std::endl
T endl(T... args)
math::n_choose_r
T n_choose_r(T n, T r)
This is the function implementation of .
Definition: n_choose_r.cpp:35
Here is the call graph for this function: