• 关于Cocos2d-x随机数的生成


    1.使用前必须下一个随机种子,可以让每一次生成的随机数是不一样的,这里的每一次指的是时间上的每一次,如果是同一时间的随机数就不能这样写了

    srand((unsigned)time(NULL));---第一种

    srand(time(NULL));---第二种

    再使用cocos2d-x内置的方法rand(),可以获得一个0到100的数,再取余的话就可以得到rand()x,0到x的数

    int picNum=5+rand() % 25;

    5到30

    int picNum=10+rand() % 30;

    10到40

    int picNum = 1 + rand() % 4;

    1到4

     例子

    srand((unsigned)time(NULL));
    picNum = 1 + rand() % 6;

    2.同一时间,或者同一帧的随机数其实并不是真正的随机数,但是没办法,目前我只会用这种伪随机数

    方法:直接写

    picNum = 1 + rand() % 6;

    3.还有一种产生随机数的方法

    #include <random>

    std::uniform_int_distribution<unsigned> u(1, 6);
    std::default_random_engine e;
    e.seed((unsigned)time(NULL));
    int random_number = u(e);

    其中random_number 为1到6的一个随机数,这是真随机数,但还是不能在相同时间生成不同的随机数

    4.真正的随机数

    以上的

    srand((unsigned)time(NULL));

    srand((unsigned)time(0));

    只是产生的随机数是以秒为单位的,也就是说,每一秒产生的随机数都是不一样的,但是同一秒产生的随机数是一样的,这种随机种子是以秒为单位的

    还有一种是以毫秒甚至说更短的时间为随机种子,这样子如果遇到1秒内产生非常多不同的随机数的时候,就可以使得每秒产生非常多不同的随机数

    srand(clock());
    random();

  • 相关阅读:
    centos7下查看端口是否被占用
    centos7通过yum安装redis
    centos7下mysql远程连接
    centos7通过yum安装JDK1.8
    Jwt系列2:使用
    Jwt系列1:简介
    Python基础语法
    排序
    利用MultipartFile来进行文件上传
    服务器端跳转和客户端跳转
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5701519.html
Copyright © 2020-2023  润新知