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 [] 3551 읽음    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 [질문] 많은데이타 처리건 하안인 3680 2016/11/28
74021     Re:[질문] 많은데이타 처리건 지나가다 3646 2016/12/05
74023         Re:Re:[질문] 많은데이타 처리건 3571 2016/12/06
74026             Re:Re:Re:[질문] 많은데이타 처리건 StarWagon 3578 2016/12/07
74014     Re:[질문] 많은데이타 처리건 StarWagon 3551 2016/11/29
74018         Re:Re:[질문] 많은데이타 처리건-감사합니다. 하안인 3519 2016/12/01
74010     Re:[질문] 많은데이타 처리건 라스코니 3496 2016/11/29
74011         Re:Re:[질문] 많은데이타 처리건 하안인 3487 2016/11/29
74012             Re:Re:Re:[질문] 많은데이타 처리건 라스코니 3548 2016/11/29
74008     Re:[질문] 많은데이타 처리건 StarWagon 3564 2016/11/29
74009         Re:Re:[질문] 많은데이타 처리건 하안인 3538 2016/11/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.