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
[74014] Re:[질문] 많은데이타 처리건
StarWagon [] 3978 읽음    2016-11-29 21:24
답변의 답변을 보다 보니 궁극적으로 원하시는 바를 알겠기에 다시 답변답니다.
아래와 같이 하시면 원하는 결과를 얻으실것 같네요.

예전 자게에서 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 [질문] 많은데이타 처리건 하안인 4140 2016/11/28
74021     Re:[질문] 많은데이타 처리건 지나가다 4072 2016/12/05
74023         Re:Re:[질문] 많은데이타 처리건 4021 2016/12/06
74026             Re:Re:Re:[질문] 많은데이타 처리건 StarWagon 4027 2016/12/07
74014     Re:[질문] 많은데이타 처리건 StarWagon 3978 2016/11/29
74018         Re:Re:[질문] 많은데이타 처리건-감사합니다. 하안인 4008 2016/12/01
74010     Re:[질문] 많은데이타 처리건 라스코니 3941 2016/11/29
74011         Re:Re:[질문] 많은데이타 처리건 하안인 3937 2016/11/29
74012             Re:Re:Re:[질문] 많은데이타 처리건 라스코니 4041 2016/11/29
74008     Re:[질문] 많은데이타 처리건 StarWagon 3999 2016/11/29
74009         Re:Re:[질문] 많은데이타 처리건 하안인 4014 2016/11/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.