random_shuffle not really random

前端 未结 3 1208
栀梦
栀梦 2020-12-20 15:31

I\'m using the random_shuffle on a vector like this:

#include 
vector  deck;
//some code to add cards to the deck h         


        
3条回答
  •  抹茶落季
    2020-12-20 16:14

    You need to seed the psuedo-random number generator first using srand.

    #include 
    #include 
    
    ...
    
    std::srand(std::time(0));
    
    vector  deck;
    //some code to add cards to the deck here
    random_shuffle ( deck.begin(), deck.end() );
    

    Note from link above:

    Generally speaking, the pseudo-random number generator should only be seeded once, before any calls to rand(), and the start of the program. It should not be repeatedly seeded, or reseeded every time you wish to generate a new batch of pseudo-random numbers.

提交回复
热议问题