카테고리 없음

난수 발생

도영수 2017. 3. 20. 20:34

어떤 임의의 수를 a로 나눈 나머지는 항상 a보다 작다. 나머지 연산자를 적절한 위치에 제대로 사용한 예라고 할 수 있다. srand 함수를 사용하면 난수 발생기를 초기화할 수 있고 rand 함수와 나머지 연산자를 사용하면 원하는 범위의 난수를 만들 수 있다. 그러나 이 함수들은 쓰기에 불편하기 때문에 직접 사용하지 않으며 다음과 같이 정의되어 있는 매크로 함수를 대신 사용한다.


#define randomize() srand((unsigned)time(NULL))

#define random(n) (rand() % (n))


random(10)       // 0~9 까지의 난수

random(89)       // 0~88 까지의 난수


random(10)+1         // 1~10까지의 난수

random(20)+10   // 10~29 까지의 난수



 a~b사이(b 제외)의 정수 난수를 구할 때 : random(b-a)+a;

 a~b까지(b 포함)의 정수 난수를 구할 때 : random(b-a+1)+a;


(random(5)+5)*(random(2)==0 ? 1:-1)+9