sample

sample (무작위 표본 추출)

범위에서 무작위로 n개의 표본을 뽑아 출력하는 알고리즘이에요. <algorithm> 헤더, C++17부터.

출처: cppreference

본문

sample[first, last)에서 균일하게 n개의 요소를 뽑아 out에 써요.

template< class PopulationIt, class SampleIt, class Distance, class URBG >
SampleIt sample( PopulationIt first, PopulationIt last,
                 SampleIt out, Distance n, URBG&& g );
  • URBG<random>의 균일 난수 비트 생성기(mt19937 등)예요.
  • 반환 값: 쓰여진 표본 바로 다음 위치.
std::vector<int> v{1,2,3,4,5,6,7,8,9,10};
std::mt19937 rng(42);
std::vector<int> s(3);
std::sample(v.begin(), v.end(), s.begin(), 3, rng);
// 무작위 3개 표본

전체를 섞지 않고 부분 표본만 균일하게 뽑을 때 유용해요.

더 알아보기 (Learn more)

cppreference