난수와 관련하여 한 가지 문제가 있습니다. arc4random()
을 사용하여 난수를 생성 중입니다. 처음에 0-9 사이의 랜덤 숫자를 생성하고 싶습니다. 그래서 나는 사용하고있다 :주어진 숫자에서 난수 생성
int RandomNumber = arc4random() % 9;
그 좋은.
NSMutableArray *aryTemp = [NSMutableArray new];
for (int i = 0; i < [aryTemp Count] < 9; i++) {
int RandomNumber;
do {
RandomNumber = arc4random() % 9;
}
while ([aryTemp containsObject:[NSNumber numberWithInt:RandomNumber]])
[aryTemp addObject:[NSNumber numberWithInt:RandomNumber]];
}
그래서 다음 무작위 검사보다 배열에 추가하는 대신 임의의 숫자를 생성하고 : 지금은 8. 나는 나의 새로운 난수 그래서 내가 수행 한 다음 8 싶지 않아 가지고 가정 이 숫자는 이전에 생성 된 임의의 숫자인가요? 배열에 추가하는 것이 아니라면.
시작 숫자가 거의 없어도 작동하지만 몇 가지 옵션을 남겨 두었을 때 원하는 임의의 숫자를 생성 할 확률이 적어졌고 중복되는 난수로 인해 많은 시간이 걸립니다.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9의 난수를 원합니다. 처음에 다음 번에 6을 얻는다면, 이 숫자는 0, 1, 2, 3, 4, 5, 7, 8, 9
왜 모든 번호를 추가하고 배열을 임의로 셔플하지 않습니까? –
그냥 내 대답을 좀 봐 ... maxValue 대신 번호를 넣어 –
[NSMutableArray를 셔플하는 가장 좋은 방법은 무엇입니까?] (http://stackoverflow.com/questions/56648/whats-the- 가장 좋은 방법 - 셔플 - 앤 - 스미 셔널 어레이) –