rand()非常奇怪的数字

时间:2012-10-27 06:36:32

标签: objective-c ios

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

-(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;
}

有时,很少变化,当min为1时,它会返回一个像1243512这样的数字,而最大值是9。

正如你所看到的,我试图阻止它,但在我尝试修复后,它刚刚发生在我身上。

我该如何解决这个问题?

由于

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

1 个答案:

答案 0 :(得分:2)

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