전화번호 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 말고 다른것을 써야 하나요.
:
|