중복되는 수에 관하여.
틀큰
#includestdio.h
#includestdlib.h
#includetime.h
main()
{
int temp;
int i,j;
int num[12];
srand( (unsigned ) time(0) );
for(i = 0; i 12; i++)
{
num[i] = rand() % 20 ;}
for(i = 0; i 12; i++)
printf(%d , num[i]);
puts();
temp = 0;
for(i = 0; i 12; i++)
if(num[i] temp)
temp = num[i];
printf(%d\n,temp);}
난수가 발생이 됩니다. 근데 문제는 이걸 어떻게 해서 중복 되는 숫자를 막아야 될지 모르겟습니다.
-
파라미
작은 숫자의 범위에서 제가 쓰는 방법은 이렇습니다.
추출할 범위의 수가 0~19까지라고 한다면 [20] 배열에 0~19까지 넣습니다.
그리고 index변수를 20으로 세팅하고 램덤수를 index범위 안에서 뽑아서 해당되는 위치의 배열에
기록된 값을 꺼내고 해당되는 위치 +1 위치의 값부터 값을 앞쪽으로 쉬프트 시킵니다.
그리고 index 값은 -1 시키죠. 저는 이런 방법을 사용한 적이 있습니다. ^^ -
미리별
이 부분은 여러번 답변 하는거 같네요.
가장 단순한 방법은 이미 나온 수인가 확인하는 방법이 가장 초보적인 방법이지만...
추출할 범위는 좁고 추출할 수는 많다면 중복되는 횟수가 많아지며,
매번 검색하는 속도때문에 퍼포먼스가 나오지 않습니다.
이런식으로 로또나 위 님처럼 추출 범위가 정해져있고
그 범위가 크지 않은경우에는 무작위 랜덤보다는
범위의 수를 미리 추출하신뒤 뒤섞는 셔플 기법을 사용하시기 바랍니다. -
찬솔
저도 예전에 텔레뚱님 말씀처럼 랜덤수가 나오면 배열에 차곡 차곡 넣는데 그전에 중복 검사를 했었죠.. 근데 3~4개의 숫자를 뽑는다면야 위 알고리즘이 나을지 모르나.. 로또 처럼 40개 이상의 중복 없는 수를 뽑을 경우 속도면에서 약간 떨어지지 않을까요? 제 기억으론 잠깐 동안 다운(?)되는 듯한 증상을 보인적이 있었던거 같은데.. 뭔가 획기적인게 있지 않을까요.. ^-^
-
울트라
C나 C++은 잘 모르겠지만 난수 하나 발생 할 때마다 그 전까지 나왔던 수와 비교애서 같으면 다시 난수 밸생을 하고 비교하고, 같지 않으면 그대로 사용하는 알고리즘이 낫지 않을런지요?
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2701151 | 사이트작업시 inputbox 가 readonly 형태표시 어떻게 하시나요? (1) | 찬내 | 2025-07-11 |
2701123 | 간단한 select 질문입니다 (3) | 천사의눈물 | 2025-07-11 |
2701061 | 비베질문.. | 똘끼 | 2025-07-10 |
2701034 | 메일폼 내 script 삽입가능한 방법 없을까요.. (2) | 마음새 | 2025-07-10 |
2701008 | 분명히 버튼을 만들었는데 액션이 안걸립니다. (3) | 재찬 | 2025-07-10 |
2700923 | 전체중앙정렬&독타입&쿼크모드 ㅜㅠ (8) | 푸른들 | 2025-07-09 |
2700893 | 질문드리겠습니다. | 도도한 | 2025-07-09 |
2700793 | 무비클립에 마우스 오버시 랜덤으로 효과음 나기는 어떻게 ;; (1) | 바닐라 | 2025-07-08 |
2700741 | 웹전송? (2) | 연와인 | 2025-07-07 |
2700686 | 카테고리 호버시 세부카테고리 보이게하는 것, css로만 가능할까요?? (3) | 다힘 | 2025-07-07 |
2700658 | 메타태그 질문드립니다..ㅠㅠ;;; | 모해 | 2025-07-07 |
2700632 | 외부에서 이미지 파일을 불러와야 합니다. 도와주세요. (4) | 에일린 | 2025-07-06 |
2700579 | (air + as3) smtp 이용해서 첨부파일 포함해서 메일 보내기 | 물보라 | 2025-07-06 |
2700524 | 클릭시 밑에 메뉴 나오게 (4) | 새솔 | 2025-07-05 |
2700505 | activex를 비쥬얼6.0으로 만들었는데요 비스타 배포시에 안되서 질문드립니다 (3) | 참이 | 2025-07-05 |
2700452 | c언어에서... 자료형 구분.... (3) | 시내 | 2025-07-05 |
2700422 | 버전에 관해 질문 | 라온제나 | 2025-07-04 |
2700393 | mysql이 갑자기!!!!!!!!!!!!!!!에러가;; (2) | 소미 | 2025-07-04 |
2700359 | 3.0 ) SimpleButton 상태 강제 변경 (3) | 희선 | 2025-07-04 |
2700304 | ie8 전용핵 문의 (3) | 여자 | 2025-07-03 |