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();

  • 相关阅读:
    字符统计和滑动窗口
    字典树应用及用哈希表代替
    迷宫里的动态规划应用
    求所有排列中的第 i 个排列的问题
    最大子串和问题
    二分查找、变形及应用
    前 n 个数原址排序的问题
    LeetCode 32 括号匹配
    11.常用的API
    10.正则表达式
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5701519.html
Copyright © 2011-2022 走看看