알버트의 개발하는 블로그
C 언어 / C++ 언어 제13강 랜덤 난수 이용하여 주사위 눈 세기 (srand 함수, rand 함수, time 함수) 본문
C 언어 / C++ 언어 제13강 랜덤 난수 이용하여 주사위 눈 세기 (srand 함수, rand 함수, time 함수)
알버트 2021. 4. 29. 14:30
이번 시간에는 랜덤 난수를 이용하여 주사위를 10000번 돌렸을 때 나오는 눈의 개수를 세어 주는 프로그램을 짜보겠습니다.
랜덤 난수라는 것은, 컴퓨터가 하나의 seed 를 뽑고 그 안에서 랜덤으로 수를 뽑는 것입니다.
주로 프로그래밍 상에서 확률적인 어떤 처리를 해야할 때 많이 사용되는 기법입니다.
랜덤 난수를 쓰기 위해선 srand와 rand함수가 함께 쓰입니다.. 그리고 srand의 인수를 설정해주기 위해서 time(NULL)이란 값이 필요한데, 이 함수를 쓰기 위해서 time.h 헤더파일을 포함시켜주어야 합니다.
코딩과 실행 결과
대표사진 삭제
사진 설명을 입력하세요.
이처럼 코딩해주시면 됩니다.
먼저 소스파일의 헤더부분쪽에 #include <time.h> 를 써서 타임함수를 포함시켜주어야 합니다.
srand(time(NULL))은 현재 시각에 맞춰서 시드를 생성해줍니다.
그리고 나서 첫번째 for문으로 들어가게 되는데요. 여기서 rand() 함수를 통해서 시드 안에서 랜덤으로 숫자를 뽑게 됩니다. srand는 시드 생성, rand는 난수 뽑기라고 생각하시면 됩니다.
rand() % 6 을 해주는데, 어떤 랜덤한 수를 뽑아서 나누기 6을 했을 때 나오는 나머지는 0부터 5가 있습니다.
count[0]부터 count[5]까지의 수 중에서 랜덤한 하나의 수가 커지게 되는데 이 과정이 바로 주사위 눈을 한번 돌리는 과정입니다. 그리고 이 과정을 for문을 통해서 10000번 시행해주고,
그 다음 두번째 for문을 통해서 주사위 눈의 개수를 출력해줄 수 있습니다.
이제 주사위를 10000번 돌렸을 때 결과를 실행해보면?
대표사진 삭제
사진 설명을 입력하세요.
이렇게 결과가 나오는 것을 알 수 있습니다.
1부터 6의 개수가 비슷하게 1600~1700으로 생성되는 것을 알 수 있고 이 수들을 다 더하면 10000이 됩니다.
이처럼 랜덤 난수는 time과 srand 그리고 rand함수를 통해서 사용할 수 있습니다.
랜덤 난수 뽑기 기능은 프로그래밍에 있어서 많이 사용되는 기법이므로 많이 써봐서 익숙해져야 할 것입니다.
읽어주셔서 감사합니다~
'프로그래밍 언어 > C & C++' 카테고리의 다른 글
C 언어 / C++ 언어 제15강 자연수를 입력받아 약수 찾기 (for 반복문, 연산자) (0) | 2021.04.29 |
---|---|
C 언어 / C++ 언어 제14강 이차원 배열 ( 반복문 활용하여 이차원 배열 출력하기 ) (0) | 2021.04.29 |
C 언어 / C++ 언어 제12강 메모리 동적 할당 하여 배열 출력하기 (malloc 함수, 메모리 동적 할당) (0) | 2021.04.29 |
C 언어 / C++ 언어 제11강 함수 사용하기 (사용자 정의 함수 사용) (0) | 2021.04.29 |
C 언어 / C++ 언어 제10강 비쥬얼 스튜디오 콘솔창 유지하기 (실행화면 유지) (0) | 2021.04.29 |