-1

我从这个函数中得到了一些非常奇怪的数字。

-(int)generateRandomNumber:(int)min:(int)max {
    int i = rand() % ((max + 1)- min) + min;
    if(i < min || i > max) {
        NSLog(@"WEIRD RANDOM CASE JUST HAPPENED");
        return [self generateRandomNumber:min:max];
    }
    return i;
}

有时,很少变化,当最小值类似于 1 而最大值类似于 9 时,它会返回一个类似于 1243512 的数字。

如您所见,我试图阻止它,但在我尝试此修复后,它又发生在我身上。

我怎样才能解决这个问题?

谢谢

编辑我正在使用 srandom(time(NULL)); 在当前的 cocos2d 场景中init

4

1 回答 1

2

我不确定是什么导致了您的问题,但我强烈建议使用 random() 或 arc4random() 而不是 rand()。它们产生更好的随机数。

于 2012-10-27T06:50:56.790 回答