본문 바로가기
지난 학기들의 기록/C 기초

[C언어] 범위가 지정된 난수생성 : a~b 범위의 난수를 생성하라

by 아메리카노와떡볶이 2020. 5. 11.
728x90

rand()%6의 경우 무작위의 숫자를 6으로 나눈 나머지를 의미한다. 즉 0,1,2,3,4,5의 수가 무작위로 생성된다.

이를 좀 더 일반화하면 

rand()%a ===> 0부터 a-1 까지 범위의 난수를 받는다.

 

rand()%a+3 ==> 3부터 a+2까지의 범위의 난수를 받는다. 이와 같은 과정을 통해

 

rand()%b+a ==> a부터 (b-1)+a의 범위의 난수를 받는다는 것을 알수있다. 

 

rand()%(b-a+1) ==> 0부터 b-a의 범위

 

rand()%(b-a+1)+a ==> a부터 b의 범위이다.

 

즉 정리하자면 N, T 까지의 범위의 난수를 생성하고싶다면

rand()%(T-N+1)+N 이다.

728x90

댓글