iOS学习笔记——随机打乱一个数组
2012-05-18 10:53
337 查看
常规方式:
?View Code OBJC
注意,这里不能用rand(),要用arc4random()。rand()需要srandom(time(NULL));生成种子,且不是真正的伪随机数发生器;而arc4random()运行时,自动生成种子,且是真正的伪随机数发生器。
也可以使用NSMutableArray的Category实现:
?View Code OBJC
使用:[newArray shuffle];
?View Code OBJC
1 2 3 4 5 6 | NSMutableArray *newArray; for(int i = 0; i< count; i++) { int m = (arc4random() % (count - i)) + i; [newArray exchangeObjectAtIndex:i withObjectAtIndex: m]; } |
也可以使用NSMutableArray的Category实现:
?View Code OBJC
1 2 3 4 5 67 | @interface NSMutableArray (Shuffling) - (void) shuffle; @end @implementation NSMutableArray (Shuffling) - (void)shuffle { int count = [self count]; for (int i = 0; i < count; ++i) { int n = (arc4random() % (count - i)) + i; [self exchangeObjectAtIndex:i withObjectAtIndex:n]; } } @end |
相关文章推荐
- 黑马程序员-IOS学习笔记 用指针逆序一个数组
- iOS 随机打乱一个数组的顺序 获得一个新的数组
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- 黑马程序员-IOS学习笔记 折半查找 在数组中插入一个数返回index
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 习题2.8 随机数组的三种生成算法(补) 将bash的实现翻译成比较纯正的bash风格
- iOS 随机打乱一个数组的顺序 获得一个新的数组
- 随机打乱一个数组
- 如何随机打乱一个数组
- 黑马程序员之C#编程基础学习笔记:计算一个整数数组的所有元素的和。
- 将一个数组随机打乱
- iOS 学习笔记 打开一个网页
- iOS阶段学习第六天笔记(数组)
- Java基础之随机打乱一个顺序数组
- 黑马程序员之C#编程基础学习笔记:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世"
- 黑马程序员——IOS学习笔记(C语言字符串和数组)
- 【零基础入门学习Python笔记011】一个打了激素的数组2
- 黑马程序员之C#编程基础学习笔记:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素减1。
- ios学习笔记(五)数组和字典
- 四 :ios学习笔记 数组及时间类处理
- Java学习 产生一个随机数组的两种方法