我们如何检查是否通过生成的数字 我想在0到10之间生成一个唯一的数字。
randomNumber = arc4random()%10;
是否独一无二?
我能够生成一个随机数,但无法检查它是否唯一?
由于
答案 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; }