
RandomRandomizer::shuffleArray를 사용하여 배열을 섞을 때 중복되지 않는 섞음이 가능합니다.
이 코드에서 중복되지 않는 섞음을 구현할 수 있는 방법은 다음과 같습니다.
1. 중복되지 않는 섞음 알고리즘 사용: Fisher-Yates shuffle 알고리즘을 사용하여 중복되지 않는 섞음을 구현할 수 있습니다. 이 알고리즘은 다음과 같습니다.
#hostingforum.kr
cpp
void shuffleArray(std::vector& array) {
std::random_device rd;
std::mt19937 g(rd());
for (int i = array.size() - 1; i > 0; --i) {
std::uniform_int_distribution dis(0, i);
int j = dis(g);
std::swap(array[i], array[j]);
}
}
2. 중복되지 않는 섞음 라이브러리 사용: C++ 표준 라이브러리에 중복되지 않는 섞음 알고리즘을 구현한 라이브러리가 있습니다. `std::random_device`와 `std::mt19937`을 사용하여 중복되지 않는 섞음을 구현할 수 있습니다.
#hostingforum.kr
cpp
void shuffleArray(std::vector& array) {
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(array.begin(), array.end(), g);
}
이 코드에서 중복되지 않는 섞음을 구현하기 위해서는 Fisher-Yates shuffle 알고리즘을 사용하거나 C++ 표준 라이브러리에 중복되지 않는 섞음 알고리즘을 구현한 라이브러리를 사용하면 됩니다.
2025-04-08 18:16