Dav*_*dNg 6 random nsarray ios
我有一个N个整数元素的NSMutableArray(N> 4),我想从这个数组中得到3个不同的随机元素.我真的不需要一个完美均匀的分布,只有3个不同的随机元素应该没问题.你有什么建议吗?谢谢
das*_*ght 10
制作NSIndexSet并继续添加
int value = arc4random() % array.count;
Run Code Online (Sandbox Code Playgroud)
直到它的大小到达它的项目3.你知道你有三个索引.
NSMutableIndexSet *picks = [NSMutableIndexSet indexSet];
do {
[picks addIndex:arc4random() % array.count];
} while (picks.count != 3);
[picks enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
NSLog(@"Element at index %ud: %@", idx, [array elementAt:idx]);
}];
Run Code Online (Sandbox Code Playgroud)
for (int i = 1; i <= 3; i++) {
int index = (int)(arc4random() % [array count]);
id object = [array objectAtIndex:index];
[array removeObjectAtIndex:index];
}
Run Code Online (Sandbox Code Playgroud)
arc4random()返回[0,2 ^ 32-1]范围内的随机数.使用模数大小的模数得到的余数得到一个介于[0,arrayCountLessOne]之间的值.
如果您不想更改原始数据数组,则只需复制该数组即可.
| 归档时间: |
|
| 查看次数: |
2203 次 |
| 最近记录: |