我想要一个包含12个数字的数组 - > 0到11 数组必须是随机的,我不希望有两倍相同的数字
感谢名单
答案 0 :(得分:2)
听起来像是一个洗牌问题。
只需声明一个如下的数组
NSMutableArray * numbers = [NSMutableArray array];
for (int i = 0; i < 12; i++) {
[numbers addObject:@i];
}
然后,您可以使用Fisher-Yates算法
对该数组进行随机播放for (NSUInteger i = numbers.count - 1; i > 0; --i) {
NSUInteger n = arc4random_uniform(i+1);
[numbers exchangeObjectAtIndex:i withObjectAtIndex:n];
}
答案 1 :(得分:1)
我建议你创建一个数组并将其填入一个数字为0到11的循环中。在第二步中,你将该数组洗牌:What's the Best Way to Shuffle an NSMutableArray?
答案 2 :(得分:-1)
您可以尝试以下方式:
NSMutableArray *array = [[NSMutableArray alloc] init];
for (int i = 0; i < 12; i++) {
int randomNumber = min + rand() % (max-min);
[array addObject:[NSNumber numberWithInt:randomNumber]];
}
不确定语法是否正确,我现在在Windows机器上