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
[74018] Re:Re:[질문] 많은데이타 처리건-감사합니다.
하안인 [hurco] 3695 읽음    2016-12-01 11:46
감사합니다.

StarWagon 님이 쓰신 글 :
: 답변의 답변을 보다 보니 궁극적으로 원하시는 바를 알겠기에 다시 답변답니다.
: 아래와 같이 하시면 원하는 결과를 얻으실것 같네요.
:
: 예전 자게에서 Nibble 님이 올리신 중복 없는 난수 추출 코드를 약간 손봤습니다.
: (어떠한 일로 삭제되긴 했지만...)
:
: 속도도 제 컴퓨터 기준 0.3~0.4초 정도 걸리고, 메모리도 386mb 밖에 안먹네요.
:
:
:
:
: struct PHONENUMBER {
: 	short f,r;
: 	AnsiString GetNumber() {
: 		AnsiString s;
: 		s.printf("010-%04d-%04d",f,r);
: 		return s;
: 	}
: };
: 
: 
: void shuffle(PHONENUMBER* items, int count, int totalcount );
: void swap(PHONENUMBER &a, PHONENUMBER &b);
: //---------------------------------------------------------------------------
: void shuffle( PHONENUMBER* items, int count, int totalcount)
: {
: 	Randomize();
: 	for( ; count; --count )
: 		swap( items[Random(totalcount)], items[--totalcount] );
: }
: //---------------------------------------------------------------------------
: void swap(PHONENUMBER &a, PHONENUMBER &b)
: {
: 	PHONENUMBER tmp=a;
: 	a=b;
: 	b=tmp;
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: 	TDateTime N=Now();
: 
: 	int Count=9999;
: 
: 	PHONENUMBER *num=new PHONENUMBER[Count*Count];
: 
: 	int TotalCount=0;
: 
: 	for (int i = 1; i <= Count; i++) {
: 	for (int j = 1; j <= Count; j++) {
: 		num[TotalCount].f=i;
: 		num[TotalCount].r=j;
: 		TotalCount++;
: 	}
: 	}
: 
: 	int shufflecount=10; //여기에 40만개를 넣으면 result에 40만개가 채워집니다.
: 	shuffle(num, shufflecount,TotalCount);
: 
: 	PHONENUMBER *result=new PHONENUMBER[shufflecount];
: 	memcpy(result,&num[TotalCount-shufflecount],sizeof(PHONENUMBER)*shufflecount);
: 
: 
: 	for (int i = 0; i < shufflecount; i++) {
: 		Memo1->Lines->Add(result[i].GetNumber());
: 	}
: 
: 
: 	N=Now()-N;
: 	ShowMessage(N.FormatString("s.zzz"));
: 	delete[] num;
: 	delete[] result;
: 
: }
: //---------------------------------------------------------------------------
: 

:
:
:

+ -

관련 글 리스트
74007 [질문] 많은데이타 처리건 하안인 3842 2016/11/28
74021     Re:[질문] 많은데이타 처리건 지나가다 3805 2016/12/05
74023         Re:Re:[질문] 많은데이타 처리건 3731 2016/12/06
74026             Re:Re:Re:[질문] 많은데이타 처리건 StarWagon 3740 2016/12/07
74014     Re:[질문] 많은데이타 처리건 StarWagon 3718 2016/11/29
74018         Re:Re:[질문] 많은데이타 처리건-감사합니다. 하안인 3695 2016/12/01
74010     Re:[질문] 많은데이타 처리건 라스코니 3654 2016/11/29
74011         Re:Re:[질문] 많은데이타 처리건 하안인 3650 2016/11/29
74012             Re:Re:Re:[질문] 많은데이타 처리건 라스코니 3725 2016/11/29
74008     Re:[질문] 많은데이타 처리건 StarWagon 3719 2016/11/29
74009         Re:Re:[질문] 많은데이타 처리건 하안인 3709 2016/11/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.