1 #include <samchon/library/PermutationGenerator.hpp> 6 PermutationGenerator::PermutationGenerator(
size_t n,
size_t r)
10 for (
size_t i = n - 1; i > n -
r; i--)
13 dividerArray.assign(n, NULL);
14 for (
size_t i = 0; i <
n; i++)
19 vector<size_t> atoms = this->dividerArray;
20 vector<size_t> row(
r_, NULL);
22 for (
size_t i = 0; i < row.size(); i++)
24 size_t item = x % atoms.size();
25 x = (size_t)floor(x / (
double)atoms.size());
28 atoms.erase(atoms.begin() + item);
auto n() const -> size_t
Get size of the N.
size_t size_
Size, the number of all cases.
size_t r_
R, size of elements of each case.
virtual auto operator[](size_t) const -> std::vector< size_t > override
Get x'th case.
auto r() const -> size_t
Get size of the R.