86 void GenerateSample(Integer kk, Integer nn, std::vector<Integer>& data)
const
94 throw std::invalid_argument(
95 "You must choose a non-negative number of values from a proper sequence.");
104 for (ii = 0; ii < kk; ++ii)
114 std::uniform_real_distribution<> unitUniform(0., 1.);
115 std::uniform_int_distribution<Integer> randomIndex(0, kk - 1);
116 double w = exp(log(unitUniform(generator)) / kk);
120 Integer delta =
static_cast<Integer
>(floor(log(unitUniform(generator)) / log(1.0 - w)) + 1);
130 Integer jj = randomIndex(generator);
132 std::cout <<
" i " << ii <<
" δ " << delta <<
" w " << w <<
" → j " << jj <<
"\n";
136 w *= exp(log(unitUniform(generator)) / kk);
147 std::sort(data.begin(), data.end());