2012-05-12 5 views
3

내가 INT를 만드는거야 어떻게 그렇게 무작위 될 것 같지 않습니다 : 랜드()는 여기에

int randNumber = rand() % 4; 
NSLog(@"%d", randNumber); 

그러나 때마다 나는 수는 상관없이, 동일하지 않는 응용 프로그램을 실행합니다.

버튼을 생성하고 임의의 숫자를 다시 초기화하고 새로운 숫자를 기록한 다음 임의의 숫자를 생성하는 동작을 첨부했습니다.하지만 앱 실행시 임의의 숫자는 항상 동일합니다. 20 번 이상 발사).

앱 발매시 임의의 숫자가 항상 동일한 이유는 무엇입니까?

답변

13

arc4random()를 사용해보십시오, 씨앗 당신부터 srand (서명 INT 종자)를 호출해야

+0

를 작동하는 프로그램의 시작? – Talon

+0

nevermind 나는 단지 arc4random() 일 뿐이라고 생각한다. – Talon

3

프로그램을 실행할 때마다 다른 시드를 지정해야합니다. 씨앗이 주어지면 난수 생성기는 일련의 숫자를 생성합니다. 같은 씨앗이 동일한 숫자 세트를 생성합니다. 다른 세트를 얻으려면 다른 시드가 필요합니다.

몇 가지 지침이에서보세요 : Generating random numbers in Objective-C

0

을 필요로하지 않는; rand 함수를 시드합니다. srand를 부르지 않으면 매번 1이됩니다.

1

rand()는 의사 난수 생성 프로그램입니다. 그것은 씨앗을 사용하고 각 씨앗에 대한 정확한 순서를 생산합니다.

당신이이 작업을 수행 할 경우 당신이 한계를 설정하는 방법

srand(time(NULL)); 

+0

http://stackoverflow.com/questions/5912799/srandtimenull-on-iphone-dont-work –