83 void GenerateSample(Integer kk, Integer nn, std::vector<Integer>& data)
const
91 throw std::invalid_argument(
92 "You must choose a non-negative number of values from a proper sequence.");
101 for (ii = 0; ii < kk; ++ii)
111 std::uniform_real_distribution<> unitUniform(0., 1.);
112 std::uniform_int_distribution<Integer> randomIndex(0, kk - 1);
113 double w = exp(log(unitUniform(generator)) / kk);
117 Integer delta =
static_cast<Integer
>(floor(log(unitUniform(generator)) / log(1.0 - w)) + 1);
127 Integer jj = randomIndex(generator);
129 std::cout <<
" i " << ii <<
" δ " << delta <<
" w " << w <<
" → j " << jj <<
"\n";
133 w *= exp(log(unitUniform(generator)) / kk);
144 std::sort(data.begin(), data.end());