Objective C随机数字

时间:2011-03-31 08:04:49

标签: objective-c random

我需要一些帮助。 我想生成数字。但我的数字重复了。 如何才能使数字不重复? 我的代码如下。 感谢

#import <Foundation/Foundation.h>
#import "Evaluation.h"
#define MAXDIGITCARDS 51
#define MINDIGITCARDS 0
int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    int userDigit=30;
        NSMutableArray* currentArray=[NSMutableArray new];  
        for (int a=0;a<userDigit;a++)
        {
            Evaluation *evaluation = [Evaluation new];
            int correctNumber = ((arc4random() % (MAXDIGITCARDS - MINDIGITCARDS)) + MINDIGITCARDS);
            [evaluation setCorrectNumber:correctNumber];
            [currentArray addObject:evaluation];
            [evaluation release];

        }
        [currentArray release];

    [pool drain];
    return 0;
}

2 个答案:

答案 0 :(得分:1)

如果通过'不重复'表示您希望所有30个数字彼此不同,那么每次生成数字时,请查看它是否已存在于currentArray中。如果是,则生成另一个。重复,直到你得到一个你还没有的。

或者(因为看起来你正在洗牌)看看像Fisher-Yates shuffle这样的东西。

答案 1 :(得分:0)

您是否播种了随机数发生器?类似的东西:

srandom(time(NULL));