콘텐츠로 건너뛰기
Home » 난수생성을 위한 조금 더 나은 선택 – arc4random

난수생성을 위한 조금 더 나은 선택 – arc4random

전통적인 C 함수로 srandom, rand를 이용해서 난수를 생성하는 방법이 있는데, 보다 진보된(?)형태의 함수로 arc4random 함수가 있다. 이 역시 표준 C 라이브러리(libc)에 탑재되어 있다. (GCC 버전 요구사양은 잘 모르겠다.)

u_int32_t arc4random(void);

이 함수는 32비트 범위값 내에서 정수의 형태로 난수를 생성하며, rand(), randome() 함수에 비해 두 배의 범위를 가진다. 게다가 seed 값을 미리 정의해줄 필요도 없다.

(update: 2019.06.23) Swift의 Int, Float 등 기본 숫자값 타입들은 이제 random(in:) 메소드를 공통적으로 지원합니다. 이 메소드는 간단한 범위 타입을 인자로 받고, 내부의 SystemRandomNumberGenerator를 통해 난수를 생성합니다. 애플 플랫폼에서 시스템 난수제너레이터는 다시 arc4random함수를 사용합니다.

참고: arc4random 매뉴얼 : https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/arc4random.3.html