zoukankan      html  css  js  c++  java
  • 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)。

  • 相关阅读:
    链表-(1)
    爬虫(10-3)验证码图片识别
    爬虫10-2(多线程爬虫)
    分布式爬虫系统的架构(19)
    pipenv管理Python虚拟环境
    peewee-async集成到tornado
    Python3笔记051
    Python3笔记050
    Python3笔记049
    Python3笔记048
  • 原文地址:https://www.cnblogs.com/tyche116/p/9400454.html
Copyright © 2011-2022 走看看