我正在尝试生成 3 个介于 0 到 25 之间的随机数。我为此使用了 arc4random_uniform(25)
并且它生成了 3 个随机数。但问题是有时我会得到两个甚至这三个数字都相同,但我需要 3 个唯一的数字。
最佳答案
正如@Thilo 所说,您必须检查它们是随机的,如果不是,则重复:
// This assumes you don't want 0 picked
u_int32_t numbers[3] = { 0, 0, 0 };
for (unsigned i = 0; i < 3; i++)
{
BOOL found = NO;
u_int32_t number;
do
{
number = arc4random_uniform(25);
if (i > 0)
for (unsigned j = 0; j < i - 1 && !found; j++)
found = numbers[j] == number;
}
while (!found);
numbers[i] = number;
}
关于ios - 在 Objective-C 中生成 3 个唯一的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12049741/