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

델파이 Q&A
Delphi Programming Q&A
[7467] 10억개의 유일한 수를 생성한다 @@a ???!!!
박정모 [] 1365 읽음    2001-09-27 17:56
.
주제넘은 얘기일지는 몰라도 문제 정의가 잘못되어 있는것 같습니다.
현실적으로 10억개의 수를 한꺼번에 핸들링해야 하는 경우는 없다고
생각합니다.

10억개의 수가 유일한지 비교하는 시간이 너무 오래 걸리는 것도
커다란 문제 입니다.
.

1 byte = 8 bit 로 구성된다는 것을 이용해서 1/8로 메모리 용량을
줄일 수 있지만 그래도 1,000,000,000 / 8 = 125,000,000 ( 약 120메가 )
정도를 사용하게 됩니다.

추천하고 싶은 방법은 100K 정도의 공간을 검색하는 Class를 만들고
그 Class의 Object를 10개 정도( 그래도 1Mega 가까이 ) 메모리에
생성합니다.

그리고 새로운 수가 메모리에 생성되어 있는 클래스의 영역이 아니라면
파일에서 읽어오고 또, 파일에 그 영역이 생성되어 있지 않다면 다시
100K 정도의 영역을 만드는 방법으로 하면 될 것 같습니다. DB Table에
Blob field를 만들어서 사용하는 것도 괜찮을 듯 합니다.

Class에 자신의 수 영역을 기록하는 멤버 변수를 만들어야 하고, 그
것을 파일로 기록하는 부분도 만들어야 합니다.

Key는 1 byte = 8 bit 이라는 것과 class object에 기록된 수 영역을
Segment로 잡고, Offset으로 100K의 메모리 공간을 이동하면서 각 Bit가
켜져 있는지 꺼져있는지 검사하는 것입니다.

지금은 업무 시간이라 예제를 만들어 드릴 수 없습니다. Class 구현에
자신이 있으시다면 직접 구현해 보시는 것도 좋으리라 생각됩니다.

지금은 컴퓨터 시스템이 너무 좋아서 클래스와 스레드로 잘만 돌리면
실시간에 가깝게 접근할수 있을지도... ^^;;

ps : 286에서 1mega 짜리 file을 만들어 본적이 있는데 몇초 걸렸었것
같으네요... 요즘은 시스템이 좋아서... ^^;;


+ -

관련 글 리스트
7462 [질문]배열의 크기는? 이상헌 1395 2001/09/27
7476     전 이론전으로 말해 볼께여..^^ 타락천사 1382 2001/10/07
7472     Re:[질문]배열의 크기는? 지나가는 사람 1340 2001/09/27
7470     Re:비효율적이긴 하지만 가능합니다. 박지훈.임프 2253 2001/09/27
7467     10억개의 유일한 수를 생성한다 @@a ???!!! 박정모 1365 2001/09/27
7464     Re:[질문]배열의 크기는? 박정모 1425 2001/09/27
7463     Re:[질문]배열의 크기는? 류종택 1458 2001/09/27
7465         Re:Re:[질문]배열의 크기는? 답변 감솨...... 이상헌 2623 2001/09/27
7466             Re:Re:Re:[질문]배열의 크기는? 답변 감솨...... 류종택 1472 2001/09/27
7469                 Re:Re:Re:Re:[질문]배열의 크기는? 답변 감솨...... 최보현.U&I 1801 2001/09/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.