2016년 3월 21일 월요일

random , shuffle.

C++을 쓰다 보면 C보다 참 쉽게 느껴지다가도 이런거 보면 자바따라가나 싶기도 하고.

string shuffle 예제. (출처)

string shuffle(string a) {
    unsigned seed = chrono::system_clock::now().time_since_epoch().count();
    shuffle(a.begin(), a.end(), default_random_engine(seed));
    cout << "shuffle : " << a << endl;
    return a;
}

아래는  random string 생성 예제인데, 좀더 fancy/tricky한 방법이 몇개 더 있는것 같지만 가장 직관적인 것 같다. (출처)

string gen_random(const int len) {
    string r;
    static const char alphanum[] =
    "0123456789"
    "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    "abcdefghijklmnopqrstuvwxyz";
    
    for (int i = 0; i < len; ++i) {
        r += (char)(alphanum[rand() % (sizeof(alphanum) - 1)]);
    }
    
    return r;

}

댓글 없음:

댓글 쓰기