我需要一些帮助。 我想生成数字。但我的数字重复了。 如何才能使数字不重复? 我的代码如下。 感谢
#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;
}
答案 0 :(得分:1)
如果通过'不重复'表示您希望所有30个数字彼此不同,那么每次生成数字时,请查看它是否已存在于currentArray
中。如果是,则生成另一个。重复,直到你得到一个你还没有的。
或者(因为看起来你正在洗牌)看看像Fisher-Yates shuffle这样的东西。
答案 1 :(得分:0)
您是否播种了随机数发生器?类似的东西:
srandom(time(NULL));