zoukankan      html  css  js  c++  java
  • 纸牌生成算法(随机数组)

     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);
  • 相关阅读:
    Tomcat服务器原理详解
    junit入门
    lombok
    java 运行指定类的main函数
    席位分配问题——惯例Q值法和d&#39;hondt法的MATLAB程序
    5.2 calendar--通用日期的相关函数(3)
    [笔记]软件体系结构(1)--模式初印象
    hdu 1003
    linux虚拟机上挂载U盘
    Android中Java与web通信
  • 原文地址:https://www.cnblogs.com/hanyutong/p/5126484.html
Copyright © 2011-2022 走看看