개발자 Q&A

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

2025.08.06 05:31

mt_srand 함수와 srand 함수의 차이점에 대해 질문합니다.

목록
  • JWT연구가 19시간 전 2025.08.06 05:31 새글
  • 9
    1
저는 최근에 C언어에서 난수 발생을 다루는 부분에서 어려움을 겪고 있습니다.
mt_srand 함수와 srand 함수는 난수 발생을 위한 seed값을 설정하는 데 사용되지만,
그 차이점이 무엇인지 모릅니다. 두 함수의 차이점은 무엇이며, 각각의 사용법에 대해 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  19시간 전



    C언어에서 난수 발생을 위한 seed값을 설정하는 두 함수는 mt_srand 함수와 srand 함수입니다.

    mt_srand 함수는 Mersenne Twister 알고리즘을 사용하는 난수 발생 함수로, seed값을 설정하면 고정된 시드값을 사용하여 난수를 발생시킵니다.

    srand 함수는 일반적인 난수 발생 함수로, seed값을 설정하면 시스템 시드값을 사용하여 난수를 발생시킵니다.

    두 함수의 차이점은 Mersenne Twister 알고리즘을 사용하는지 여부입니다. Mersenne Twister 알고리즘은 고정된 시드값을 사용하여 난수를 발생시키기 때문에, 같은 시드값을 사용하여 동일한 난수를 발생시킬 수 있습니다.

    반면, srand 함수는 시스템 시드값을 사용하여 난수를 발생시키기 때문에, 같은 시드값을 사용하여 다른 난수를 발생시킬 수 있습니다.

    사용법은 다음과 같습니다.

    - mt_srand 함수: `mt_srand(seed);`
    - srand 함수: `srand(seed);`

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        int seed = 12345;
    
        mt_srand(seed);
    
        printf("%dn", mt_rand()); // 고정된 난수 발생
    
    
    
        srand(seed);
    
        printf("%dn", rand()); // 시스템 시드값에 따라 난수 발생
    
    
    
        return 0;
    
    }
    
    


    이 예제에서는 mt_srand 함수를 사용하여 고정된 난수를 발생시키고, srand 함수를 사용하여 시스템 시드값에 따라 난수를 발생시킵니다.

    2025-08-06 05:32

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

검색

게시물 검색