로딩
요청 처리 중입니다...

[c/c++] 난수 생성 - rand(),srand(), time()

 [c/c++] 난수 생성 - rand(),srand(), time()

프로그래밍을 하다 보면 종종 랜덤 값이 필요할 때가 생깁니다. 단순히 로또 시뮬레이션을 구현할 때도 쓰이고, 균형 잡힌 이진 탐색 트리 중 하나인 트립(Treap)을 구현하는 데에도 랜덤 값을 이용하기도 합니다.

#include //rand()와 srand() #define RAND_MAX 32767 int rand(void); // 반환값:0~RAND_MAX rand() 함수 return 값의 범위는 [0, RAND_MAX]이라고 합니다. RAND_MAX=32767로 설정되어 있습니다.

만약 이보다 더 큰 숫자를 뽑아내고 싶다면, rand() * rand() 이렇게 제곱해도 되고 rand() << 15 | rand() 이렇게 비트연산을 이용해도 됩니다. 하지만, 이러면 난수의 편향성이 존재하므로 마냥 좋은 방법이라고 하긴 힘듭니다.

그럼 rand() 함수를 써서 10개의 정수를 출력해봅시다. rand()만 사용할 경우 41 18467 6334 26500 1916...

# cpp # c언어 # rand # srand # 랜덤