개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.08 18:14

RandomRandomizer::shuffleArray를 사용하여 배열을 섞을 때, 중복되지 않는 섞음이 가능할까요?

목록
  • UI컴포넌트장인 4일 전 2025.04.08 18:14
  • 3
    1
제가 지금까지 사용한 코드는 다음과 같습니다.

cpp

#include 

#include 

#include 

#include 



class RandomRandomizer {

public:

    static void shuffleArray(std::vector& array) {

        std::random_device rd;

        std::mt19937 g(rd());

        std::shuffle(array.begin(), array.end(), g);

    }

};



int main() {

    std::vector array = {1, 2, 3, 4, 5};

    RandomRandomizer::shuffleArray(array);

    for (const auto& num : array) {

        std::cout << num << " ";

    }

    std::cout << std::endl;

    return 0;

}



이 코드를 실행하면 중복되지 않는 섞음이 이루어지는지 궁금합니다.

이 코드에서 중복되지 않는 섞음을 어떻게 구현할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  4일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 10,920건 / 67 페이지

검색

게시물 검색