본문 바로가기

Objective-C

[Objective-C] 랜덤 함수

arc4random 이라는 랜덤 함수가 objective c 에 있는데, 다른 곳에도 있는지 사실 잘 모르겠다.

일단 랜덤 함수라면 c/c++ 에 익숙한 사람이라면 rand() 함수가 익숙 할 것이다. 

 

 하지만 rand()가 사실상 정말로 랜덤하게 값을 가져 오지 않는 다는 것을 알것이다. rand()가 

이뤄질 때 생성된 테이블에서 정해진 값을 뽑아 오는 것이니까. 해서 srand(time(NULL))와 같은

방식으로 랜덤 테이블을 초기화 해주어야 rand() 함수가 진정 랜덤의 기능을 가질 수 있는데 또한 1초

안에  srand(time(NULL))로 초기화 해도 다시 rand() 함수를 호출하게 되면 의미가 없어 지는데, 

(예를 들어 for문에서 호출된다던지....)

 

 arc4random 이 친구는 그런거 필요없다고 한다. 그냥 호출해도 랜덤한 값이 나온다. 

하지만, 느리다. loop안에서 호출된다면 성능을 많이 떨어 뜨린다.