• C++ 生成随机数


    Rand函数

    单纯的rand()会返回一个0至RAND_MAX之间的随机数值,而RAND_MAX的值与int位数有关,最小是32767。不过rand()是一次性的,因为系统默认的随机数种子为1,只要随机数种子不变,其生成的随机数序列就不会改变。

    srand函数

    srand()可用来设置rand()产生随机数时的随机数种子。通过设置不同的种子,我们可以获取不同的随机数序列。可以利用srand((unsigned int)(time(NULL))的方法,利用系统时钟,产生不同的随机数种子。

    示例:

     1 #include "stdafx.h"
     2 #include <iostream>
     3 #include <stdlib.h>
     4 #include <time.h>
     5 
     6 #define random(x,y) (((double)rand()/RAND_MAX)*(y-x+1)+x)
     7 
     8 using namespace std;
     9 
    10 int _tmain(int argc, _TCHAR* argv[])
    11 {
    12     srand((int)time(NULL));
    13 
    14     for (int i = 0; i < 200; i++)
    15     {
    16         cout << "num :   " << (int)random(0, 10) << endl;
    17     }
    18 
    19     getchar();
    20     return 0;
    21 }

    随机数获取范围的方法 

    (double)rand()/RAND_MAX)*(y-x+1)+x)

    (0,x)的随机整数:rand()%x 或者 (double)rand()/RAND_MAX)*(x)

    (a,b)的随机整数:rand()%(b-a) 或者 (double)rand()/RAND_MAX)*(b-a-1)+a+1

    [a,b)的随机整数:rand()%(b-a)+a 或者 (double)rand()/RAND_MAX)*(b-a)+a

    [a,b]的随机整数:rand()%(b-a+1)+a 或者 (double)rand()/RAND_MAX)*(b-a+1)+a

    (a,b]的随机整数:rand()%(b-a)+a+1 或者 (double)rand()/RAND_MAX)*(b-a)+a+1

    0-1之间的浮点数:rand()/double(RAND_MAX)。

  • 相关阅读:
    windows phone 网络开发三部曲(一)各种包的各种抓法
    Windows phone UI虚拟化和数据虚拟化(二)
    Windows phone UI虚拟化和数据虚拟化(一)
    LongListSelector 控件 在 wp7 和wp8中的不同之处
    wp8 longlistselector 动态加载datatemplate
    解读Python发送邮件
    浅谈Python时间模块
    中文分词技术一:概念
    MySQL常用命令
    初步认识Hive
  • 原文地址:https://www.cnblogs.com/tyche116/p/9400454.html
Copyright © 2020-2023  润新知