ios - 在 Objective-C 中生成 3 个唯一的随机数?

标签 ios objective-c random

我正在尝试生成 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/

相关文章:

ios - 将许多 gif 加载到 UICollectionView

ios - 如何在单个表中使用两个不同的自定义 UITableViewCell 子类?

objective-c - Swift 和 Xcode 6.1 的布局问题

ios - 使用 Restkit 忽略映射中的空数组

javascript - 使用 forge(或其他 JavaScript 方法)生成随机大素数

c++ - Xcode:C++ 头文件中的断点似乎被忽略了

ios - 使用 IP 使用 iphone 应用程序捕获闭路电视摄像机

php - NSURLConnection 连接到服务器,但不发布数据

c - 生成随机数并在 C 中的范围内打印 "Done!"

haskell - 尝试将随机字符串传递给 Haskell 中的 SHA