[C언어 도전기 14편] rand
안녕하세요!
배열과 포인터를 지났는데 이번에는 살짝 번외편으로 rand 함수에 알아보고자 합니다!
rand 함수는 말그대로 랜덤한 수를 출력하게 해주는 함수입니다.
rand는 어떻게 나오게 표현하는지 간단하게 살펴보겠습니다!
rand 함수 실행법과 사용법은 위와 같습니다 하지만 여러번 실행 해보시면 아시겠지만 값이 바뀌지 않고 위의 값이 그대로 표현 되는 것을 보실 수 있습니다.
우리가 생각했던 값과는 다르죠? 그렇다면 rand 함수와 함께 쓰이는 srand 함수에 대해 알아보겠습니다
srand 는 seed + rand 의 합해진 말입니다 즉 seed 값에 의해서 rand 값이 변동이 된다는 의미 입니다 그렇다면 srand 를 사용한 방법을 같이 살펴보도록 하겠습니다
위와 보시는 것처럼 저는 srand(2) 의 값만 추가를 했습니다 그리고 rand 값을 출력 하였는데 값이 바뀌는 것을 볼 수 있었습니다.
그렇다면 우리가 이제 자유 자제로 원하는 rand 범위 내의 숫자를 표현하고 싶습니다!
그렇게 활용을 하기 이전에 우리가 rand , srand 값이 어떻게 사용이 되는지 한 번 알아보겠습니다
time.is/ko/Unix_time_converter
유닉스 타임스탬프 변환기
유닉스 타임스탬프 변환기
time.is
바로 위의 유닉스 타임스탬프라는 시간을 통해서 우리가 시간을 값으로 바꾸어 주고 있었던 것입니다
이 시간은 1970년 1월 1일 00시 00분 00초 부터 시작해서 지금 시간까지 흘러오고 있다고 이야기 해주고 그 값을 우리는 랜덤함수로 사용을 하고 있다는 것을 알 수 있습니다
그래서 앞으로 srand를 사용 할 시에는 반드시 선언 해주셔야 할 구문이 있습니다
srand((unsigned)time(NULL));
이 구문을 통해서 나는 계속 난수를 생성한다는 선언을 할 수 있습니다
한 번 간단하게 실행해보고 마무리 하도록 하겠습니다!
위와같이 선언을 해주고 계속 실행하면 계속해서 다른 숫자가 나오는 것을 알 수 있습니다
오늘은 rand, srand 함수에 대해서 간략하게 알아보았습니다
다음시간은 rand와 이때까지 배웠던 함수들을 통해서 간략하게 연습문제를 풀어보는 시간을 가지도록 하겠습니다
수고많으셨습니다!