밑의 질문과 연동해서...[난수의 재생성에 대해]
앵초
for(i=0; iMAX_SIZE; i++){
gene_num = rand()%100+1;
for(j=0; j=i; j++){
if(temp_gene_num[a][j] == 0) temp_gene_num[a][j] = gene_num;
else if(gene_num == temp_gene_num[a][j]) {
gene_num = rand()%100+1;
continue;
}
}
}
이런식으로 생성된 숫자가 배열에 있으면 중간에 빨간색으로 보이는 코드처럼
다시 한번 재생성하게 만들었습니다.
결과는 일단 실패였습니다.
중복으로 나온 수가 있더군요.
하지만 어떻게든 같은 인덱스 내에서는 중복을 없애게 만들려고 하는데 적은 수면 ||를 써서 인덱스끼리 비교를 할수 있지만 수가 많아지면 그렇게 할수도 없지만 이미 재생성을 저런식으로 하는것 자체에 의구심이 듭니다.
혹시라도 난수의 재생성을 확실히 아시는 분 가르침을...
-
다은
bool isoverlapping;
for(i = 0; i max_size; i++){
do {
gene_num = rand()%100+1;
isoverlapping = false; // 중복되지 않는다고 가정
for(j = 0; j i; j++) {
if(temp_gene_num[a][j] == gene_num -
앵겨쪼
일단 답변은 감사합니다. 하지만 값의 범위를 넓힐수 없습니다. 제가 원하는것이 1~100까지의 수중 10개 뽑고 그 가운데 중복이 없게 만드는 프로그램이므로 범위값을 넓힐수는 없습니다. 컴파일 타임이 아주 잠깐사이에 사라지니까 제가 밑에서 GetTickCount로 0.3초 단위까지 줄여봤습니다만 그래도 새로 생성시키는데에는 중복이걸리건 안걸리건 그대로 쭉 필터링 없이 넘어가던 모양입니다.
그 부분을 해결하고 싶은데 딱히 답이 안나오는 군요... -
로운
프로그램에서 랜덤함수의 동작을 보면 일정 난수표가 있고 그 난수표에서
무작위로 숫자(이때 숫자범위는 0 ~ 32767 )를 추출하는식의 동작을 합니다.
여기서 난수표를 선택하는것이 srand() 이고
숫자를 추출하는 것이 rand() 인데
보통 srand(time(NULL)) ; rand() % 100 + 1 ; 이런식의 사용하게 되죠
srand에서 time값을 주는 것은 time은 그때 그때 변화하는 숫자로써
난수표의 배열을 그때그때 섞어
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692451 | 이 문제좀 풀어주세요 ^^ | 게자리 | 2025-04-23 |
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |