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


     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);
  • 相关阅读:
    第04组 Beta冲刺 (2/5)
    第04组 Beta冲刺 (1/6)
    第04组 Alpha冲刺 总结
    二叉树的递归与非递归
    各类典例模板
    选择题合辑2
    运算符重载
    链表题目
    集合的模拟实现(类模板)
    2018Final静态成员(黑名单)
  • 原文地址:https://www.cnblogs.com/hanyutong/p/5126484.html
Copyright © 2020-2023  润新知