黑马程序员技术交流社区
标题: 为什么使用 [set anyObject] 每次取出的数都一样。 [打印本页]
作者: 落羽 时间: 2015-4-17 17:21
标题: 为什么使用 [set anyObject] 每次取出的数都一样。
//,掷骰子100次,输出每个号出现的次数;为什么使用 [set anyObject] 每次取出的数都一样。
#import <Foundation/Foundation.h>
int main()
{
int n1 = 0 ,n2 = 0 , n3 = 0 , n4 = 0 , n5 = 0 , n6 = 0 ;
NSSet *set = [NSSet setWithObjects:@1 ,@2 ,@3 ,@4 ,@5 ,@6,nil];
for(int i = 0 ;i<100 ;i++)
{
NSNumber *m = [set anyObject];
int d = [m intValue];
NSLog(@"%d",d ) ;
switch (d) {
case 1:
n1++ ;
break;
case 2:
n2++ ;
break ;
case 3:
n3++ ;
break ;
case 4 :
n4++ ;
case 5 :
n5++ ;
case 6 :
n6++ ;
break;
}
}
NSLog(@"1出现的次数是%d,2出现的次数是%d,3是%d,4是%d,5是%d,6是%d",n1,n2,n3,n4,n5,n6);
return 0 ;
}
作者: fantacyleo 时间: 2015-4-17 17:58
这个问题在API 文档中说得很清楚了:"the selection is not guaranteed to be random"——不保证返回项是随机的,也就是说,每次返回一样也是允许的,你不能指望这个方法来实现随机数的功能。产生随机数还是用arc4random函数吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |