유엔아이 현입니다.
일단 10 억개의 랜덤 변수를 필요로 한다는 전제 하에~
이렇게 하십시요~
일단 무작정 생성하고 중복 되는걸 비교 해 없에 겠다? 이는 참 무식 한 방법 입니다.
저 같으면 ... 이렇게 하겠습니다. 일단 일련 번호를 만들고 섞어 버리겠습니다.
최초 한개의 임의의 수자를 만드십시요~
그리고 그걸 가지고 .. 일정 하게 증가 하거나 또는 임의의 값만큼씩 증가하면서 10 억개를 만드십시요~
일단 여기 까지 만드셨으면 ... 이 10 억개는 절대 겹치지 않는 수열이라고 증명 할수 있는 거겠지요~
그럼 이렇게만 하면 재미 없으니까 ....
두개의 10 억 미만의 인덱스 변수를 만드십시요~
그리고 그 두개의 인덱스에 있는 값을 바꾸십시요~
이렇길 원하는 만큼 하십시요~
그럼 10 억개의 임의의 겹치지 않는 수를 만드실수 있을 것입니다.
그럼
류종택 님이 쓰신 글 :
: 여전히 작업의 의도를 명확하게는 알수 없지만..
: 중복되지 않은 랜덤 숫자를 얻기위해..
: 미리 그 데이터를 모두 가지고 있는 다는 것은..
: 상당히 효율이 떨어지는 것이라고 봅니다..
: 몇 개 정도의 데이터를 생산하시면서 랜덤 숫자가 필요하신 지는 모르지만..
: 10억개와는 상당히 차이가 있겠지요..
: 더구나 첫번째 부터 10억개가 미리 준비되어야하는 비효율성은..
: 별로 좋지 못한 발상인듯 합니다..
:
: 차라리..
: 화일이나 DB를 이용해서..
: 이제것 나온 데이터를 비교하는 것이 빠를 듯 합니다..
: 랜덤 숫자를 뽑아내면.. 기존데이터와 비교하고 있으면..
: 다시 뽑고.. 없으면 갱신하는 식으로 말입니다..
:
:
: From 류..
:
: 이상헌 님이 쓰신 글 :
: : 답변 감사 합니다...
: : 배열을 만드는 이유는 아래에서 말씀하신 DB나 TList모두 사용해 본후 생각한 방법 입니다..
: : 어떤 작업 인가 하면요... 랜덤 하게 숫자를 만들어야 합니다.
: : 하지만.. 중복이 되거나 하면 안되져.. 그래서. DB에 넣커나.. TString으로 중복 제거 하는 방법모두
: : 사용해 봤지만.. 워낙 많은양의 자료를 생산해야 하다보니.. 무리가 가더군요...엄청나게...
: : 생성초기에 모두 생성해 놓고.. 중복이 안되게 가져 오면 되지 않을까 해서여....
: : 지금은 다각도로 생각하고 있습니다..
: : 일단 일련번호로 가 들어있는 화일을 만들어서 이것을 읽어 메모리에 넣코... 랜덤하게 뽑아오면 되지 않을까.....화일에 만들어 놓코 읽는거랑... 배열을 생성하는거랑 어느것이 빠를까요?
: : 두서없이 막 적어서 이해가 힘드시죠.. 에구.. 죄송....
: : 저~ 지금 너무 졸립고. 힘도 없어서...
: : 이글 쓰고있는 이시간도 한 15분정도 걸린거 같네요.. 쓰다가 졸다가.. ㅋㅋㅋㅋ^^;
: : 환절기 감기조심 하세요..^^; 좋은 하루......
: :
: :
: :
: : 류종택 님이 쓰신 글 :
: : : 10억개 -.-
: : : 그런 것을 배열로 사용하는 것은 상당히 효율이 떨어지는 일 입니다..
: : :
: : : 그런 경우라면..
: : : TList를 사용하세요..
: : : 10억개는 역시 무리가 가겠지만요..
: : : 스왑핑하면서 엄청나게 속도가 떨어질 겁니다..
: : :
: : : 아니면 Stack아닌 Heap을 사용하는 것이..
: : : 자료구조론에도 나오는 Linked List를 스스로 구현해서 작성해보는 거죠..
: : : (메모리가 버텨주려나 10억개의 항목에??)
: : :
: : : 어떠한 일에 사용될 지는 모르겠지만..
: : : 데이타베이스 사용도 고려해보시는 것이 좋을 것 같네요..
: : :
: : :
: : : From 류..
: : :
: : :
: : : 이상헌 님이 쓰신 글 :
: : : : 변수를 배열로 잡을수 잇는 최대 크기는 얼마 인가여?
: : : :
: : : : test : array[1000000] of byte;
: : : :
: : : : byte 일경우 1,000,000는 에러가 나지 않습니다. 10,000,000는 에러가 납니다.
: : : :
: : : : integer일경우는 생성할수잇는 최대 크리가 당연히 반으로 줄더군여....
: : : :
: : : : 최대... 10억개의 배열이 필요합니다....
: : : :
: : : : 어떻케 하면 좋을까요?
|