如何在iphone中检查唯一的int号

时间:2012-08-04 19:52:01

标签: iphone ipad

我们如何检查是否通过生成的数字 我想在0到10之间生成一个唯一的数字。

  

randomNumber = arc4random()%10;

是否独一无二?

我能够生成一个随机数,但无法检查它是否唯一?

由于

3 个答案:

答案 0 :(得分:3)

为避免重复,请参阅以下随机数生成代码。当您运行以下代码时,也不会重叠任何数字。如果你的意思是你想让它独一无二。

#define COUNT 1000
#define RANGE 1000
int num[COUNT];

bool isNew(int idx, int val)
{
    for (int i=0; i<idx; i++) 
    {
        if (num[i] == val) return false;
    }
    return true;
}

for (int i=0; i<COUNT; i++)
{
    do
    {
        num[i]=arc4random()%RANGE;        
    }
    while (!isNew(i, num[i]));
    NSLog(@"%d ", num[i]);
}    

答案 1 :(得分:1)

您可以将所有生成的数字保存在数组中,并检查是否有两个重复项。

您拥有的数字越多,确定生成的数字就越独特。

答案 2 :(得分:0)

尝试使用此代码...这将为您提供Mutable数组中设置的所有唯一编号...

-(NSInteger) randomNumber {
NSInteger newRandomNumber = (NSInteger) arc4random() % 10;
NSInteger uniqueNumber;
if ([self.arrayContainingNumbers containsObject: [NSNumber numberWithInteger:newRandomNumber]]) {
    [self randomNumber];
    } else {
    [self.arrayContainingNumbers addObject: [NSNumber numberWithInteger:newRandomNumber]];
}
uniqueNumber = [[self.mutableArrayContainingNumbers lastObject]integerValue];
     NSLog(@"new Unique Number is %ld",(long)uniqueNumber);

return uniqueNumber;  }

不要忘记添加此方法:)

-(NSMutableArray *) arrayContainingNumbers {
if (!_mutableArrayContainingNumbers) {
    _mutableArrayContainingNumbers = [[NSMutableArray alloc] init];
}
return _mutableArrayContainingNumbers; }