随机数不重复

时间:2013-08-20 20:36:54

标签: ios objective-c

我使用以下代码隐藏我的 rand_btns NSMutableArray中的UIButton。

int random = arc4random_uniform ([rand_btns count]);

if (random != level - 1) {
    [[rand_btns objectAtIndex:random] setHidden:YES];
} else {
    // call again this method
}

效果很好,但......重复一遍。如何停止重复OR以检查我的rand_btns数组中的UIButton是否被隐藏,不需要再次包含此objectAtIndex。

我的意思是,如果使用我的代码,我可以隐藏我的数组中的随机按钮,除了特定的objectAtIndex。

我想不再重复 int random

中的数字

3 个答案:

答案 0 :(得分:2)

您可以参考此Non-repeating arc4random_uniform。如果您想检查您的按钮是否已隐藏,可以查看button.hidden属性。

答案 1 :(得分:2)

如果你想要一个不重复的随机数字序列,一种方法是用一个连续的数字填充一个数组,然后将这个数字随机排序。这样,您就知道每个数字只出现一次,但您无法预测数字出现的顺序。

答案 2 :(得分:1)

随机数可以重复,因为它们是随机的。您可能需要保存到目前为止已经提供的随机数列表,并且当您想要一个新号码时,请继续尝试,直到您得到一个不在您列表中的号码。还要注意,如果你正在寻找一个迄今为止没有的数字,那么迟早你会遇到一个无限循环,因为最终你想要的范围内没有更多的“免费”数字< / p>