Sunday, February 04, 2007
C언어 VC] 특정 범위의 숫자(정수) 랜덤 출력: Random Range Min Max (rand)
C에서, rand 함수는 0에서 RAND_MAX (대부분의 경우 32767)까지의 정수를 반환합니다. 0에서부터 시작하는 것이 아니라, 파라미터로 지정해 준, 하한값과 상한값 사이의 숫자에서 난수를 출력하려면, 다음의 randomRange 함수를 사용하면 됩니다.
"상한값 - 1"까지가 아니라 정확히 상한값까지입니다. 즉, 2에서 5까지 지정했다면, 2, 3, 4, 5 이렇게 2~5를 출력합니다. 좀더 직관적으로 사용할 수 있게끔 하기 위해서입니다.
randomRange(하한값, 상한값)
이렇게 지정합니다.
소스 파일명: example.cpp
(비주얼 C용 소스입니다.)
컴파일 및 실행 결과 화면:
▶▶ C언어] 랜덤 숫자 (난수 정수) 출력 - Random Numbers rand srand 함수
"상한값 - 1"까지가 아니라 정확히 상한값까지입니다. 즉, 2에서 5까지 지정했다면, 2, 3, 4, 5 이렇게 2~5를 출력합니다. 좀더 직관적으로 사용할 수 있게끔 하기 위해서입니다.
randomRange(하한값, 상한값)
이렇게 지정합니다.
지정해준 범위 내에서만, 난수 구하기 예제
소스 파일명: example.cpp
(비주얼 C용 소스입니다.)
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
int randomRange(int n1, int n2);
int main(void) {
srand(GetTickCount()); // 난수 발생기 초기화
// -3에서 +3까지 범위의 정수를 랜덤하게 20개 출력
for (int i = 1; i <= 20; i++)
printf("%d\n", randomRange(-3, 3));
return 0;
}
// 지정된 범위의 정수 1개를 램덤하게 반환하는 함수
// n1 은 "하한값", n2 는 상한값
int randomRange(int n1, int n2) {
return (int) (rand() % (n2 - n1 + 1)) + n1;
}
#include <stdlib.h>
#include <Windows.h>
int randomRange(int n1, int n2);
int main(void) {
srand(GetTickCount()); // 난수 발생기 초기화
// -3에서 +3까지 범위의 정수를 랜덤하게 20개 출력
for (int i = 1; i <= 20; i++)
printf("%d\n", randomRange(-3, 3));
return 0;
}
// 지정된 범위의 정수 1개를 램덤하게 반환하는 함수
// n1 은 "하한값", n2 는 상한값
int randomRange(int n1, int n2) {
return (int) (rand() % (n2 - n1 + 1)) + n1;
}
컴파일 및 실행 결과 화면:
D:\Z>cl example.cpp && example.exe
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
example.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:example.exe
example.obj
2
-1
1
2
1
2
-2
1
0
-3
2
2
3
3
0
0
-3
-3
0
0
D:\Z>
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
example.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:example.exe
example.obj
2
-1
1
2
1
2
-2
1
0
-3
2
2
3
3
0
0
-3
-3
0
0
D:\Z>
▶▶ C언어] 랜덤 숫자 (난수 정수) 출력 - Random Numbers rand srand 함수
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home