C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[74012] Re:Re:Re:[질문] 많은데이타 처리건
라스코니 [chouoo] 3540 읽음    2016-11-29 16:20
결국은 각 연산에 대한 비용을 따져보셔야 하는데

(간단히 생각해보면) 1억개 중에 랜덤으로 뽑는다고 해도 중복으로 뽑을 수가 있기 때문에 반드시 중복을 피해야 된다면 절대로 중복되지 되지 않고 랜덤 수를 생성하던지 아니면 생성후 중복되는지 체크하는 수밖에 없을 것 같습니다.

STL을 쓸 수 있다면 key, value 쌍을 제공하는 map 에 랜덤 인수 생성값을 바탕으로 (1억개 중에서 뽑던지 아니면 생성하던지)  뽑힌 40만개의 번호를 넣는 작업을 하면서 이미 해당 키(key)에 해당하는 값이 존재하는지를 확인해서 이미 존재한다면 그 값은 skip하는 식으로 처리해야 할 것 같네요.


하안인 님이 쓰신 글 :
: 랜덤으로 뽑는다고 해도 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 말고 다른것을 써야 하나요.
: : :

+ -

관련 글 리스트
74007 [질문] 많은데이타 처리건 하안인 3675 2016/11/28
74021     Re:[질문] 많은데이타 처리건 지나가다 3640 2016/12/05
74023         Re:Re:[질문] 많은데이타 처리건 3565 2016/12/06
74026             Re:Re:Re:[질문] 많은데이타 처리건 StarWagon 3571 2016/12/07
74014     Re:[질문] 많은데이타 처리건 StarWagon 3551 2016/11/29
74018         Re:Re:[질문] 많은데이타 처리건-감사합니다. 하안인 3513 2016/12/01
74010     Re:[질문] 많은데이타 처리건 라스코니 3491 2016/11/29
74011         Re:Re:[질문] 많은데이타 처리건 하안인 3482 2016/11/29
74012             Re:Re:Re:[질문] 많은데이타 처리건 라스코니 3540 2016/11/29
74008     Re:[질문] 많은데이타 처리건 StarWagon 3558 2016/11/29
74009         Re:Re:[질문] 많은데이타 처리건 하안인 3535 2016/11/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.