Graphisoft®

GSRootVersion: 1.0

RandomShuffle

범위 내의 N개 요소들의 시퀀스를 N 중 하나로 재배열합니다! 가능한 정렬들은 임의로 선택됩니다.

template <class Ran>
void RandomShuffle (
    Ran                 first,
    Ran                 last
);
template <class Ran, class RanGen>
void RandomShuffle (
    Ran                 first,
    Ran                 last,
    RanGen              func
);

Template 파라미터

Ran
랜덤 접근 반복자입니다.
RanGen
랜덤 생성자(generator) 함수입니다.

파라미터

first
재정렬된 범위의 1번째 요소의 위치를 설명하는 랜덤 접근 반복자입니다.
last
재정렬된 범위의 마지막 직전 요소의 위치를 설명하는 랜덤 접근 반복자입니다.
func
랜덤 번호 생성자라고 불리는 특수 함수 객체입니다.

설명

RandomShuffle은 범위 [first, last)의 요소들을 랜덤하게 재정렬합니다: 즉, N! 가능한 순서들 중 하나를 무작위로 고릅니다. 여기서 Nlast - first입니다. RandomShuffle은 2가지 버전이 있습니다. 1번째 버전은 내부 랜덤 번호 생성자를 사용하고, 2번째 버전은 인자를 통해 명시적으로 전달한 특수한 함수 객체의 일종인 랜덤 번호 생성자를 사용합니다.

참고사항

알고리즘