랜덤을 구현하는 방법

2021. 11. 7. 19:01C&C++

좋은 랜덤이란 :

확률이 균등하게 나오는 것

다음 랜덤값을 예측하기 힘든 것

 

1. rand, srand 함수를 통해 구현한다.

성능이 좋지만, 확률이 균등하게 나오지 않을 가능성(RAND_MAX와 나머지 연산을 했을 때)

->이를 보완한 C++의 random 라이브러리. 좋은 랜덤을 제공하지만 성능이 떨어지는 단점이 있음.

 

2. 랜덤함수 + 일부분을 테이블에 패턴을 미리 정의하는 방법 (몇번째에 어떤 것이 나온다)

나올 것이 계획한대로 꼭 나오는 장점

사실상 조작한 랜덤이기 때문에 진정한 랜덤은 아니라는 단점

 

3. 2번의 알고리즘의 테이블을 셔플 알고리즘으로 섞는 방법

4. 랜덤 함수를 할 때마다 해당 요소의 개수를 줄이는 방법

3,4번 둘다 덜 조작한 것이긴 하지만, 이것도 진정한 랜덤은 아니라는 단점

 

'C&C++' 카테고리의 다른 글

C언어 문자열 처리  (0) 2022.01.06
C/C++ 시간을 측정하기  (0) 2022.01.06
#pragma once  (0) 2021.10.25
enum class  (0) 2021.10.25
프로그래밍 팁  (0) 2021.10.19