zoukankan      html  css  js  c++  java
  • 【C++】随机数,rand()与srand()函数

    rand()函数

    rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。

    测试代码:

    #include<cstdlib>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        for (int i = 0; i < 10; i++)
        {
            cout << rand() << endl;
        }
        system("pause");
        return 0;
    }

     运行三次的结果:

     

    因为没有随机种子所以, 三次的运行结果相同,因此就要引出srand


     srand()函数

    srand()可用来设置rand()产生随机数时的随机数种子。通过设置不同的种子,我们可以获取不同的随机数序列。
    可以利用srand((int)(time(NULL)));的方法,利用系统时钟,产生不同的随机数种子。不过要调用time(),需要加入头文件#include <ctime>。

    测试代码:

    #include<cstdlib>
    #include <iostream>
    #include <ctime>
    using namespace std;
    
    int main()
    {
        srand((int)(time(NULL)));
        for (int i = 0; i < 10; i++)
        {
            cout << rand() << endl;
        }
        system("pause");
        return 0;
    }

    运行三次的结果:

     

     三次的运行结果不同

    随机产生范围内的数字

    公式:

    const int MIN_VALUE = 10;
    const int MAX_VALUE = 18;
    int number = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE;

    测试代码:

    #include<cstdlib>
    #include <iostream>
    #include <ctime>
    using namespace std;
    
    int main()
    {
        srand((int)(time(NULL)));
        for (int i = 0; i < 20; i++)
        {
            
            const int MIN_VALUE = 10;
            const int MAX_VALUE = 18;
            int number = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE;
            cout << number << endl;
        }
        system("pause");
        return 0;
    }

    结果:

  • 相关阅读:
    jdk1.8 -- 方法推导 静态方法、实例方法、构造方法推导
    java23种设计模式之五:代理模式
    区块链共识机制:POW、POA、POS、DPOS、PBFT、DBFT
    Backen-Development record 1
    记录一下哈希表底层原理
    总结区块链系统运行过程
    认识一下区块链
    Django:模板template(二)
    Django:模板template(一)
    Django:视图views(三)
  • 原文地址:https://www.cnblogs.com/KMould/p/14894852.html
Copyright © 2011-2022 走看看