zoukankan      html  css  js  c++  java
  • 关于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();

  • 相关阅读:
    css clear
    设置 系统软件
    Canvas 生成 bitmap
    HashTable
    JSF
    android 自定义 锁屏
    java socket
    php mysql 配置
    mysql 启动方法
    jQuery 表格
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5701519.html
Copyright © 2011-2022 走看看