码迷,mamicode.com
首页 > 编程语言 > 详细

纸牌生成算法(随机数组)

时间:2016-01-13 12:14:09      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

 NSArray* array = [NSArray arrayWithObjects:[NSNumber numberWithInt:1],
                      [NSNumber numberWithInt:2],
                      [NSNumber numberWithInt:3],
                      [NSNumber numberWithInt:4],
                      [NSNumber numberWithInt:5], nil];
    NSMutableArray* randomArray = [NSMutableArray arrayWithArray:array];
    NSLog(@"%@", randomArray);
    /*计算机生成的随机数实际上是“伪随机数”,因为它并非真正“随机”。
     当 随机数“种子值”固定时,它生成的随机数序列是固定的。
     例如 第一次产生 41 67 34 0 69 14, 第二次,第三次...产生的还是41 67 34 0 69 14。
     没有 srand() 这句,就是用 默认 种子值。
     用 srand((unsigned)time(NULL)); 就是用当前时间秒数(从1970年到现在的时间间隔,单位秒)为种子。
     时间变,种子就变,产生的 随机数序列 就变化。增进了“随机性”。
     */
    srandom((unsigned int)time(NULL));
    
    NSInteger count = randomArray.count;
    for (int i = 0; i < count; i++) {
        NSInteger target = random() % count;
        //swap
        NSNumber* tmpNumber = [randomArray objectAtIndex:target];
        [randomArray replaceObjectAtIndex:target withObject:[randomArray objectAtIndex:i]];
        [randomArray replaceObjectAtIndex:i withObject:tmpNumber];
     }
    NSLog(@"%@", randomArray);

 

纸牌生成算法(随机数组)

标签:

原文地址:http://www.cnblogs.com/hanyutong/p/5126484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!