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);
  • 相关阅读:
    Mybatis与Hibernate概述
    Linux命令中:rsync和scp之间的区别
    更改了ssh文件下,还没有权限
    karaf 控制台 常用linux指令(2)
    karaf 控制台 常用linux指令(1)
    POM文件详解(2)
    POM文件详解(1)
    maven配置parent pom查找策略
    排序算法性能比较
    Eclipse下用NDK编译生成so文件
  • 原文地址:https://www.cnblogs.com/hanyutong/p/5126484.html
Copyright © 2011-2022 走看看