|
랜덤으로 뽑는다고 해도 40만개를 뽑는다면
뽑을때마다 기존에 존재하는지 여부를 체크해야 하는데
이것도 시간이 만만치 않게 걸릴것 같아서요.
mysql에 데이타를 넣고 order by rand() 로 하려고 하니 이것도 안되는것 같구요.
vector나 StringList 를 이용해서 뽑아온 후 뽑은 전화번호가
존재하는지 체크하는 방법밖에는 없는건가요.
라스코니 님이 쓰신 글 :
: 전화번호 1억개중 랜덤하게 몇개를 추출하신다고 하셨죠?
:
: 1) 실제 전화번호가 파일등으로 1억개가 저장되어 있는 경우
: ==> 전부다 배열에다 넣을 필요없이 랜덤으로 생성된 인덱스에 해당되는 것만 나중에 파일에서 읽어오는 방법이 있겠구요
:
: 2) 실제 전화번호가 아닌 가상으로 동적으로 (역시 랜덤으로) 생성되는 전화번호라면
: ==> 필요한 만큼 랜덤하게 뽑아서 쓰시면 됩니다. 굳이 1억개를 배열에다 넣는 불필요한 중간 과정이 필요없습니다. 랜덤은 랜덤입니다. 어떤 과정을 거치던 결과는 랜덤합니다.
:
:
:
:
: 하안인 님이 쓰신 글 :
: :
: : 1억개의 데이타를 올린 후 그중에서 램덤으로 데이타를 추출하려고 합니다.
: :
: : vector 를 이용해서 일억개의 데이타를 넣은 후 추출하려고 하니 에러가 나네요.
: :
: : AcsMan A;
: : for(i = 1; i <= 9999; i++)
: : for(j = 1; j <= 9999; j++)
: : {
: : s.printf("010-%04d-%04d",i,j);
: : A.phone = s;
: : v_acsman.push_back(A);
: : }
: :
: : randomize();
: : i = 0;
: : while(i < 400000)
: : {
: : j = random(v_acsman.size());
: : A = v_acsman.at(j);
: : v_man.push_back(A);
: : v_acsman.erase(v_acsman.begin()+j);
: : i++;
: : }
: : 1억개중 40만개를 추출하려고 하는데 vector 말고 다른것을 써야 하나요.
: :
|