생선이의 잡다한 블로그

C언어 강좌 27 - 난수(랜덤)을 만들어보자! rand 본문

프로그래밍/C언어 강좌

C언어 강좌 27 - 난수(랜덤)을 만들어보자! rand

생선스프 2017. 12. 9. 20:30
반응형

안녕하세요 생선스프입니다!


이번 강좌에서는 난수를 만들어 보려고 합니다


우선 코드먼저 보도록 하겠습니다

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void main()
{
    srand(time(0));
 
    printf("%d", rand());
}
cs


이제 설명을 해보죠


난수를 만드려면 rand 함수를 이용합니다

하지만 시드값이 바뀌지 않으면 아무리 rand 함수로 난수를 만들어도 값이 바뀌지 않습니다

왜냐하면 난수를 만들기 위한 식이 있는데 이 식에 계속해서 같은 값만 들어가면 당연히 같은 값만 나오겠죠!

예를들면 3x+1 이라는 식에 2라는 값만 넣으면 아무리 해봐도 7말고는 나올 값이 없죠


그래서 이 시드값을 바꿔주어야합니다

그런데 바뀐 시드값이 같으면 안되겠죠

그러면 이 시드값은 겹치지않으며 계속해서 바뀌는 수여야 합니다


이런 수에는 뭐가 있을까요?

바로 시간입니다

시간으로 시드값을 설정해주면 되겠네요


그러기 위해 srand 함수와 time 함수를 사용해서 시드값을 설정해 주었습니다


이제 난수의 범위를 지정해보겠습니다


rand() % n + m

이라고 할 때 m ~ n-1 범위의 난수가 만들어지게 됩니다


즉 1 ~ 10 범위의 난수를 만든다고 하면

rand() % 10 + 1 이렇게 해주면 되겠죠!


이렇게 되는 이유는 수학을 생각해보면 알 수 있습니다


그럼 이상으로 강좌 마치도록하겠습니다


강좌 읽어주셔서 감사합니다!


공감과 댓글은 생선에게 힘이됩니다!

더 많은 C언어 강좌

반응형
Comments