我正在尝试使用C++来模仿Python。
random.sample(a_set, n_samples)
C++函数的用法类似于
set<string> sample(set<string> input, int n_samples)
在我自己写之前,是否有任何库可用于此?我的电脑上装有boost 1.46。
std::sample(input.begin(), input.end(), std::back_inserter(out),
n_samples, std::mt19937{std::random_device{}()});
random_sample
和random_sample_n
函数:template <class InputIterator, class RandomAccessIterator>
Random AccessIterator random_sample(InputIterator first, InputIterator last,
RandomAccessIterator ofirst,
RandomAccessIterator olast)
template <class ForwardIterator, class OutputIterator, class Distance>
OutputIterator random_sample_n(ForwardIterator first, ForwardIterator last,
OutputIterator out, Distance n)
random_sample_n
算法的一个版本已经进入库基础组件TS,称为std::experimental::sample
,提案的最新版本N3925在2014年02月被采用,但仍未成为标准(可能在C++17中)。
n_samples
个唯一的随机数,是吗? - Kiril Kirov