ios - 用彼此不同的随机数填充数组?

标签 ios objective-c

<分区>

我想要一个包含 12 个数字的数组 -> 0 到 11 数组必须是随机的,我不想有两次相同的数字

谢谢

最佳答案

听起来像是洗牌问题。

像下面这样声明一个数组

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];
}

关于ios - 用彼此不同的随机数填充数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17261339/

上一篇:ios - 动画 UILabel 文本

下一篇:ios - 调用 sizeToFit 后 UILabel 未在 View 中调整大小

相关文章:

android - "kitchen sink"在编程中的确切含义是什么?

ios - 将 NSManagedObjectContext 对象传递给 UINavigationController 中的第三级 View Controller

ios - 当部分 map 被覆盖时居中 MKMapView

iphone - 使用位置管理器发生内存泄漏

ios - 快速更改标签栏标题字体

ios - 无需重启设置iOS语言

objective-c - CocoaLumberjack 未登录 iOS 中的后台线程

objective-c - 内部项目数量可变的 NSView

ios - Testflight 不允许使用 iOS 8.1 SDK 编译的 iOS 7.1 应用程序安装在 iOS 7.1.2 iPhone 上

ios - 将 APNs 从证书升级到身份验证 token 是否会使现有 deviceToken 失效?