A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//,掷骰子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  ;
}

1 个回复

倒序浏览
这个问题在API 文档中说得很清楚了:"the selection is not guaranteed to be random"——不保证返回项是随机的,也就是说,每次返回一样也是允许的,你不能指望这个方法来实现随机数的功能。产生随机数还是用arc4random函数吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马